【问题标题】:Access nested JSON values using Python使用 Python 访问嵌套的 JSON 值
【发布时间】:2018-11-27 04:07:55
【问题描述】:

我正在尝试使用 Python 访问嵌套的 JSON 值。

这是我的 JSON 的摘录:

    {
  "data": [
    {
      "name": "page_video_views",
      "period": "day",
      "values": [
        {
          "value": 634,
          "end_time": "2018-11-23T08:00:00+0000"
        },
        {
          "value": 465,
          "end_time": "2018-11-24T08:00:00+0000"
        }
      ],
      "title": "Daily Total Video Views",
      "description": "Daily: Total number of times videos have been viewed for more than 3 seconds. (Total Count)",
      "id": "{page-id}/insights/page_video_views/day"
    },

这是我目前写的代码:

import json
import urllib.request

data = urllib.request.urlopen("https://graph.facebook.com/v3.1/{page-id}/insights?access_token={access-token}&pretty=0&metric=page_impressions%2cpage_engaged_users%2cpage_fans%2cpage_video_views%2cpage_posts_impressions").read()

output = json.loads(data)

print(json.dumps(output, indent=2))

for item in output['data']:
    name = item['name']
    period = item['period']
    value = item['data']['values']['value']

    print(name, period, value)

我面临的问题是,每当我运行代码来访问“名称”和“句点”时,它都能正常工作,但我无法访问“值”中的“值”。我相信这是因为有两个“价值”结果,我想每次都拉第一个。

感谢您的帮助

【问题讨论】:

    标签: python json pandas


    【解决方案1】:

    item['data']['values'] 是一个列表。您需要获取它的第一个元素,然后才能访问其'value' 字段。即对应的行应该是:

    value = item['data']['values'][0]['value']
    

    【讨论】:

    • 你是我的朋友。它实际上适用于value = item['values'][0]['value']
    • 记得接受他的回答,这样其他人才能看到这是解决问题的方法! ;)
    • 对不起!它在 9 分钟内得到答复,所以我不得不等待并且有点分心。
    猜你喜欢
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多