我想制作一个程序,可以离线复制可汗学院的数学问题。我有一个 21.6MB 的巨大文本文件,其中包含他们所有练习的数据,但我不知道如何开始分析它,更不用说开始从中提取问题了。
这是一个包含 JSON 数据样本的 pastebin。如果您想查看所有内容,可以在这里找到。加载时间过长的警告。
我以前从未使用过 JSON,但我编写了一个快速 Python 脚本来尝试加载数据的单个“子块”(或等效的正确术语)。
import sys
import json
exercises = open("exercises.txt", "r+b")
byte = 0
frontbracket = 0
backbracket = 0
while byte < 1000: #while byte < character we want to read up to
#keep at 1000 for testing purposes
char = exercises.read(1)
sys.stdout.write(char)
#Here we decide what to do based on what char we have
if str(char) == "{":
frontbracket = byte
while True:
char = exercises.read(1)
if str(char)=="}":
backbracket=byte
break
exercises.seek(frontbracket)
block = exercises.read(backbracket-frontbracket)
print "Block is " + str(backbracket-frontbracket) + " bytes long"
jsonblock = json.loads(block)
sys.stdout.write(block)
print jsonblock["translated_display_name"]
print "\nENDBLOCK\n"
byte = byte + 1