首页 > 解决方案 > Json 值打印 TypeError:字符串索引必须是整数,而不是 str

问题描述

我在python中有以下字典

 >>> dict = {"name":"myname", "class": "10", "score %": "60"}

我已经从字典转换为 json 格式,如下所示

>>> json_format = json.dumps(dict)
>>> print json_format
{"score %": "60", "name": "myname", "class": "10"}

我正在尝试从 json_format 变量中获取键的值:

  >>> print json_format["name"]

我收到以下错误:

Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 TypeError: string indices must be integers, not str

请帮助我在哪里做错了。

标签: pythonjsonpython-2.7

解决方案


json.dumps()返回字符串表示形式,因此您不能像 json 数据类型一样访问它。

你需要做这样的事情:

import json
dict = {"name":"myname", "class": "10", "score %": "60"}
json_format = json.dumps(dict)

如果您检查 json_format type()

print(type(json_format))

输出:

<class 'str'>

所以你需要这样做:

json_format = json.loads(json_format)
print(json_format["name"])

推荐阅读