在Python 3.6 JSON模块中,为什么我必须同时使用加载和加载



我试图将一些数据持久化到磁盘,我试图使用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'])

相关内容

  • 没有找到相关文章

最新更新