在python中将字典转换为JSON
r = {'is_claimed': 'True', 'rating': 3.5} r = json.dumps(r) file.write(str(r['rating']))
我无法在json中访问我的数据。 我究竟做错了什么?
TypeError: string indices must be integers, not str
json.dumps()
将字典转换为str对象,而不是json(dict)对象! 所以你必须通过使用json.loads()
方法将你的str加载到字典中来使用它
请参阅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字典的JSONstring表示forms。 看文档
你不能做r['rating']
因为r是一个string,而不是字典了
也许你的意思是类似的
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()来转换string
>>> 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
必须是文件中写入string,但评价值是浮动的,所以先转换为string,然后尝试它。 它希望有效。