我有一个1GB的json文件,我想在python中使用simplejson解析它。所以我写了一个简单的代码如下,工作正常
import simplejson
f=open('stem.json','r')
content=f.read()
data=simplejson.loads(content)
上述代码的问题在于它不会以“utf-8”格式读取数据
所以我重写了下面的代码
import simplejson
import codecs
f=codecs.open('stem.json','r',encoding='utf-8')
content=f.read()
data=simplejson.loads(content)
上面代码的问题是它不会执行,内核是“杀死”程序。
我觉得这个问题很奇怪,因为没有编码就行了,当我尝试用编码读取它时需要大量的内存
谁能告诉我这里发生了什么?
答案 0 :(得分:4)
您可以尝试正常打开文件并使用带有encoding
参数的simplejson.load()
,而不是先将整个文件读入内存:
with open("stem.json", "r") as f:
data = simplejson.load(f, encoding="utf-8")
正如我在上面的评论中所说,我认为真正的解决方案是使用不同的持久性后端,而不是序列化为JSON。