【问题标题】:Json value print TypeError: string indices must be integers, not strJson 值打印 TypeError:字符串索引必须是整数,而不是 str
【发布时间】:2019-03-07 11:39:06
【问题描述】:

我在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(dict) 创建一个字符串。它不再可以作为 python 字典对象访问。你实际上是在创建'{"name": "myname", "class": "10", "score %": "60"}'
  • 再次需要转换回 dict 和 print ?
  • json.loads(json_format)

标签: python json python-2.7


【解决方案1】:

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"])

【讨论】:

    猜你喜欢
    • 2013-12-16
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    相关资源
    最近更新 更多