在Python中解码Collections + JSON的问题

时间:2015-03-31 16:37:45

标签: python json collections decoding

我一直在尝试使用Python解码Collections + JSON格式的JSON响应一段时间,但我似乎无法克服一个小问题。

首先,这是JSON响应:

{
  "collection": {
    "href": "http://localhost:8000/social/messages-api/",
    "items": [
      {
        "data": [
          {
            "name": "messageID",
            "value": 19
          },
          {
            "name": "author",
            "value": "mike"
          },
          {
            "name": "recipient",
            "value": "dan"
          },
          {
            "name": "pm",
            "value": "0"
          },
          {
            "name": "time",
            "value": "2015-03-31T15:04:01.165060Z"
          },
          {
            "name": "text",
            "value": "first message"
          }
        ]
      }
    ],
    "version": "1.0",
    "links": []
  }
}

以下是我尝试提取数据的方式:

response = urllib2.urlopen('myurl')
responseData = response.read()
jsonData = json.loads(responseData)

test = jsonData['collection']['items']['data']

当我运行此代码时,我收到错误:

list indices must be integers, not str

如果我使用整数,例如0,而不是字符串,它只显示'data'而不是任何有用的信息,不像我只是输出'items'。同样,我似乎无法访问数据子中的数据,例如:

test = jsonData['collection']['items'][0]['name']

这将证明没有名为'name'的元素。

在这种情况下访问JSON数据的正确方法是什么?如果有帮助,我还想迭代收集。

我知道有一个软件包可用于简化在Python中使用Collections + JSON collection-json,但我宁愿能够在不使用这样的软件包的情况下完成此任务。

0 个答案:

没有答案