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
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
当前回答
将r定义为字典可以达到这个目的:
>>> r: dict = {'is_claimed': 'True', 'rating': 3.5}
>>> print(r['rating'])
3.5
>>> type(r)
<class 'dict'>
其他回答
不需要使用json.dumps()将其转换为字符串
r = {'is_claimed': 'True', 'rating': 3.5}
file.write(r['is_claimed'])
file.write(str(r['rating']))
可以直接从dict对象中获取值。
在上面的例子中,您可以通过在默认字典中声明一个新字典来创建一个嵌套字典。
import json
dictionary = {
'fruit':{"Grapes": "10","color": "green"},
'vegetable':{"chilli": "4","color": "red"},
}
result = json.dumps(dictionary, indent = 3)
打印(结果)
这里,我使用了indent=3
参考:https://favtutor.com/blogs/dict-to-json-python
将r定义为字典可以达到这个目的:
>>> r: dict = {'is_claimed': 'True', 'rating': 3.5}
>>> print(r['rating'])
3.5
>>> type(r)
<class 'dict'>
JSON .dumps()返回python字典的JSON字符串表示形式。查看文档
你不能用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()将字典转换为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