【问题标题】:read json output in python在python中读取json输出
【发布时间】:2015-10-07 10:57:48
【问题描述】:

我正在尝试在 python 中读取 http 响应。响应如下,我需要从特定字段中提取所有记录。下面是我的 json 输出,我已经对其进行了修剪。但我收到类型错误。我是 python 新手,不知道我在这里缺少什么。

TypeError: list indices must be integers, not str

我的代码:

data={u'Movies': [{u'Movie': {u'movieID': u'30', u'status': u'released', u'aflag': u'1', u'Type': u'action', u'releasedate': u'1276624', u'moddate': u'1276636', u'name': u'titanic', u'frameflag': u'1', u'class': u'UA'}},{u'Movies': [{u'Movie': {u'movieID': u'32', u'status': u'released', u'aflag': u'0', u'Type': u'action', u'releasedate': u'1276624', u'moddate': u'1276636', u'name': u'movie2', u'frameflag': u'1', u'class': u'UA'}}


data_j=json.loads(data)
for i in data_j['Movies']['data_j']:
    print i['Movie']['name']

【问题讨论】:

  • 您的 data 变量已经是 Python 字典。它不是 JSON 值。您是否给我们提供了 djata_j 值?

标签: python json python-2.7


【解决方案1】:

data['Movies'] 是一个列表 字典。循环遍历该列表;列表中没有data_j 索引:

for movie in data_j['Movies']:
    print movie['Movie']['name']

【讨论】:

  • 另外,data 已经是字典了,所以我不知道它会如何通过json.loads
  • @bereal:不,MCVE 绝非如此。但是错误消息告诉我们data_j 值是显示为data 的值。
猜你喜欢
  • 2015-02-05
  • 1970-01-01
  • 2021-07-08
  • 2022-10-21
  • 1970-01-01
  • 1970-01-01
  • 2017-03-03
  • 2017-06-12
  • 2015-09-09
相关资源
最近更新 更多