You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何将URL返回的JSON数据转换为可读的Pandas DataFrame

嘿,我遇到过一模一样的问题!从你给出的JSON结构来看,它是多层嵌套的(外层quoteSummary -> result数组 -> 内部嵌套字典),直接用pd.DataFrame()肯定搞不定,因为Pandas没法自动处理这么深的层级。下面是具体的解决步骤,亲测有效:

1. 先提取核心数据

首先得把JSON里真正有用的result数组内容取出来——从你的示例看,result是个长度为1的数组,所以先拿到里面的字典:

# 假设你已经把获取到的JSON存在变量json_data里
core_data = json_data['quoteSummary']['result'][0]
2. 用json_normalize展平嵌套结构

Pandas专门提供了json_normalize()函数来处理这种嵌套JSON,它能把多层嵌套的键值对自动展开成单独的列,还能自定义嵌套键的分隔符:

import pandas as pd

# sep参数用来设置嵌套键的连接符,比如dividendDate里的fmt会变成dividendDate_fmt
df = pd.json_normalize(core_data, sep='_')
3. 查看最终结果

这时候你就可以打印DataFrame看看是不是符合预期了:

print(df.head())
额外情况处理

如果你的result数组里有多个元素(比如同时获取了多只股票的数据),那不用取[0],直接把整个result数组传给json_normalize就行:

df = pd.json_normalize(json_data['quoteSummary']['result'], sep='_')

为什么直接转不行?因为原始JSON的结构是多层嵌套的,最外层的quoteSummary是个字典,里面的result是数组,数组元素又包含嵌套字典,Pandas默认的DataFrame()只能处理单层结构,所以必须用json_normalize来拆解层级。

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

火山引擎 最新活动