在python中将Dictionary转换为JSON

Converting Dictionary to JSON in python

1
2
3
r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))

我无法访问JSON中的数据。我做错什么了?

1
TypeError: string indices must be integers, not str

json.dumps()将字典转换为str对象,而不是json(dict)对象!所以你必须将str加载到dict中才能使用json.loads()方法。

参见json.dumps()作为保存方法,json.loads()作为检索方法。

这是代码示例,可以帮助您更深入地了解它:

1
2
3
4
5
6
7
8
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 dict的json字符串表示形式。

你不能做r['rating'],因为r是一个字符串,不再是一个dict。

也许你的意思是

1
2
3
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()在字符串中转换它

1
2
3
r = {'is_claimed': 'True', 'rating': 3.5}
file.write(r['is_claimed'])
file.write(str(r['rating']))

您可以直接从dict对象获取值。


将r定义为字典应该做到这一点:

1
2
3
4
5
>>> r: dict = {'is_claimed': 'True', 'rating': 3.5}
>>> print(r['rating'])
3.5
>>> type(r)
<class 'dict'>