在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,然后尝试它。 它希望有效。