我试图将一些数据持久化到磁盘,我试图使用Python的JSON模块,但我无法访问简单json.load
上的数据,我也不知道为什么。这是我的代码:
jsondata=json.dumps({'a':1,
'b':'string',
'c':{'k1':(1,3),'k2':(12,3)}})
f= open('jsonfile.json', 'w')
json.dump(jsondata,f)
f.close()
g=open('jsonfile.json', 'r')
result=json.load(g)
g.close()
print(result['b'])
这给了我错误"TypeError:字符串标记必须是整数">
但是,如果我用替换访问块
g=open('jsonfile.json', 'r')
result=json.loads(json.load(g))
g.close()
print(result['b'])
它给了我我所期望的结果。我已经阅读了很多次文档,看起来简单的json.load
本身就足够了。我不明白为什么我也要使用json.loads
。我觉得我错过了什么。欢迎有任何见解。
感谢
问题是我在转储之前将其转换为字符串,所以需要将其转换回。这个代码起作用了。
jsondata=({'a':1,
'b':'string',
'c':{'k1':(1,3),'k2':(12,3)}})
f= open('jsonfile.json', 'w')
json.dump(jsondata,f)
f.close()
g=open('jsonfile.json', 'r')
result=json.load(g)
g.close()
print(result['b'])