You need to enable JavaScript to run this app. 如何将GraphQL API获取的数据正确格式化为Pandas DataFrame
优惠活动
大模型
产品
解决方案
定价
更多

如何将GraphQL API获取的数据正确格式化为Pandas DataFrame

你当前的输出不符合预期,是因为GraphQL返回的edges数组中每个元素都是嵌套结构:外层是node键,对应的值里又嵌套了creatorPerson字典,直接传入pd.DataFrame()只会把整个node字典作为单列的值,无法自动展开嵌套层级。

方法1:手动提取字段(逻辑最直观,适合字段少的场景)

直接遍历edges数组,提取你需要的字段构造新的列表,再转DataFrame,修改后的完整脚本如下:

import requests
import json
import pandas as pd 

url = 'https://mygraphqlserver.com/graphql/'
query = """{ resources { edges { node { id creatorPerson { firstName }} } } }"""
r = requests.post(url, json={'query': query})
json_data = json.loads(r.text)

# 核心修改逻辑:手动提取目标字段
processed_data = []
for edge in json_data['data']['resources']['edges']:
    node = edge['node']
    processed_data.append({
        'id': node['id'],
        'creator_first_name': node['creatorPerson']['firstName']
    })

resources_output = pd.DataFrame(processed_data)
print(resources_output)

输出为规整的两列DataFrame:

id creator_first_name
0  file/pt0u8h901qni3d             Jérémy
1  file/f218c8wn4onncj             Jérémy
2  file/i1y7pjk7a6xy2d             Jérémy

方法2:用pd.json_normalize自动展平(适合嵌套层级多、字段多的场景)

pandas内置的json_normalize方法可以自动展开嵌套的JSON结构,不需要手动遍历,替换原来的DataFrame生成逻辑即可:

resources_output = pd.json_normalize(json_data['data']['resources']['edges'])
# 可选操作:修改列名更简洁
resources_output.columns = ['id', 'creator_first_name']

内容的提问来源于stack exchange,提问作者Mapper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 04:39:01