python - 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
请帮助我在哪里做错了。
解决方案
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"])
推荐阅读
- sql - SQL Server - 创建分组列
- ruby - 在结构数组中查找 N 个公共属性
- ag-grid-angular - AG-Grid,无法重新排序行 - 在网格中拖动 n 行
- python - 使用 Flask 在 python 代码上从 SQLite 到 PostgreSQL
- excel - 根据标准将某些行复制到电子邮件,同时保留原始工作表未修改
- mongodb - Mongodb - 对文档进行分组并从每个组中获取具有字段最大值的文档
- python-3.x - PostgreSQL repmgr 向哪里发送查询
- android - android studio 3.5 之后 Flutter App 将无法构建 appbundle/APK 或在 Android 上运行
- javascript - 有什么比 for loop + lodash 组合更高效的方法?
- javascript - 如何动态获取嵌套在 JSON 文件中的数据