r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))
我无法在json中访问我的数据。我究竟做错了什么?在Python中将字典转换为JSON
TypeError: string indices must be integers, not str
r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))
我无法在json中访问我的数据。我究竟做错了什么?在Python中将字典转换为JSON
TypeError: string indices must be integers, not str
json.dumps()
将字典转换为str对象,而不是json(dict)对象!因此您必须将字符加载到字典中才能使用json.loads()
方法
请参阅json.dumps()
作为保存方法,并使用json.loads()
作为检索方法。
这是代码示例这可能会帮助您了解更:
import json
r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
loaded_r = json.loads(r)
loaded_r['rating'] #Output 3.5
type(r) #Output str
type(loaded_r) #Output dict
json.dumps()
返回python字典的JSON字符串表示形式。 See the docs
你不能这样做,因为r['rating']
r是一个字符串,而不是一个字典了
也许你的意思是像
r = {'is_claimed': 'True', 'rating': 3.5}
json = json.dumps(r) # note i gave it a different name
file.write(str(r['rating']))
无需使用json.dumps字符串转换()
>>> f = open("t.txt",'w')
>>> r = {'is_claimed': 'True', 'rating': 3.5}
>>> f.write(r['is_claimed'])
>>> f.write(r['rating'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: expected a character buffer object
必须是写入文件的字符串,但评价值是浮点数,所以先转换为字符串,然后尝试它。它希望有效。
你不觉得这是一个有点低效回加载JSON到一个单独的变量'loaded_r',考虑到你已经有了它在'r'中? – 2017-07-10 14:39:30
这是一个示例代码,显示事情如何一起工作!我想提及所有的细节@TimCastelijns – 2017-07-10 14:41:46