gpt4 book ai didi

python - 使用 python 中的请求函数解析 json 数据....我无法访问对象

转载 作者:行者123 更新时间:2023-11-28 16:34:38 24 4
gpt4 key购买 nike

我的数据是这样的:

{
"id": "694543830607034",
"name": "Ankit Dhawan",
"accounts": {
"data": [
{
"access_token": "a",
"category_list": [
{
"id": "192119584190796",
"name": "Event"
}
],
"name": "Ignitron 2014", // I want to print this.
"id": "731808386867764",
"perms": [
"ADMINISTER",
"EDIT_PROFILE",
"CREATE_CONTENT",
"MODERATE_CONTENT",
"CREATE_ADS",
"BASIC_ADMIN"
]
},

我也想访问页面名称(GITM-IEEE,Ignitron14),我需要从 JSON 访问页面名称。

我用来尝试打印页面名称的代码:

import requests 
import json
base_url = 'https://graph.facebook.com/me'
ACCESS_TOKEN="XXXXX"
fields = 'id,name,accounts'
url = '%s?fields=%s&access_token=%s' % \
(base_url, fields, ACCESS_TOKEN,)
print url
dat = requests.get(url).json()
for a in dat:
for b in a["data"]:
print b["name"]

最佳答案

您的循环混淆了。您最外层的对象是一个包含键的字典,这些键引用更多的对象。只有最外层的 accounts 键引用的字典中的 data 键引用了一个列表。遍历字典只产生键(字符串),但您可以直接处理这些键。对嵌套在 accounts 键下的 'data' 列表使用 for 循环:

for entry in dat['accounts']['data']:
print entry['name']

您可以稍微清理一下requests代码;使用 API 处理 GET 参数:

base_url = 'https://graph.facebook.com/me'
ACCESS_TOKEN="XXXXX"
params = {
'fields': 'id,name,accounts',
'access_token': ACCESS_TOKEN,
}
dat = requests.get(url, params=parames).json()
for entry in dat['accounts']['data']:
print entry['name']

使用示例 JSON 进行演示(修复以关闭打开的对象):

>>> import json
>>> sample = '''\
... {
... "id": "694543830607034",
... "name": "Ankit Dhawan",
... "accounts": {
... "data": [
... {
... "access_token": "a",
... "category_list": [
... {
... "id": "192119584190796",
... "name": "Event"
... }
... ],
... "name": "Ignitron 2014",
... "id": "731808386867764",
... "perms": [
... "ADMINISTER",
... "EDIT_PROFILE",
... "CREATE_CONTENT",
... "MODERATE_CONTENT",
... "CREATE_ADS",
... "BASIC_ADMIN"
... ]
... }
... ]
... }
... }
... '''
>>> dat = json.loads(sample)
>>> for entry in dat['accounts']['data']:
... print entry['name']
...
Ignitron 2014

关于python - 使用 python 中的请求函数解析 json 数据....我无法访问对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28167178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com