首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[Python技术]如何把复杂的嵌套json转换成DataFrame小技巧

[Python技术]如何把复杂的嵌套json转换成DataFrame小技巧

作者头像
子晓聊技术
发布2026-04-23 14:53:36
发布2026-04-23 14:53:36
800
举报
文章被收录于专栏:子晓AI量化子晓AI量化

今天有读者问我,怎么把爬取的数据返回的复杂json快速转换成DataFrame显示, 他希望展示在页面的数据是列表展示, 返回的复杂json存在嵌套的数据结构。

这里分享一个Python小技巧

我们假设复杂的json对象类似

代码语言:javascript
复制
data = {
"order_id": 1001,
"customer": {"name": "Alice", "phone": "15900000000"},
"items": [
        {"id": 1, "name": "商品A", "price": 99},
        {"id": 2, "name": "商品B", "price": 199}
    ]
}

我们如果想把这样的一个json 弄成 一个一维的数据怎么弄。 如果对pandas比较熟悉的同学会知道, pandas内置了高效方法pd.json_normalize() ,可自动展平嵌套结构,支持自定义路径和分隔符。

完整代码如下:

代码语言:javascript
复制
import pandas as pd
import json

# 设置全局显示选项
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.expand_frame_repr', False)
pd.set_option('display.max_colwidth', 100)

# 示例:嵌套JSON(含对象和列表)
data = {
"order_id": 1001,
"customer": {"name": "Alice", "phone": "15900000000"},
"items": [
        {"id": 1, "name": "商品A", "price": 99},
        {"id": 2, "name": "商品B", "price": 199}
    ]
}

# 展平数据,指定列表路径和保留字段
df = pd.json_normalize(
    data,
record_path="items",          # 展开列表字段
meta=["order_id", ["customer", "name"],["customer", "phone"]],  # 保留外层字段
sep="_",                      # 自定义分隔符(默认用".")
record_prefix="item_"          # 避免列名冲突
)
print(df)
代码语言:javascript
复制
代码语言:javascript
复制
代码语言:javascript
复制
最后效果
代码语言:javascript
复制
代码语言:javascript
复制

如果碰到 JSON 包含异构数据或深度不一致,可能还是需要手动提取并重组。 具体问题具体分析

题外话:

最近在思考怎么优化自己的策略, 有些东西不好描述, 那就随心记录Python小技巧在此。

本周股市连涨3天,梦到牛市来了。 6.24牛市, 和去年924那波是不是有点像。 历史虽然每次不一样,但总有那么一点相似。淡定, 错过了机会等待下一波,市场不缺机会,还是要做一名耐心的猎人,善猎者善等待。

写首打油诗劝诫自己 。

散户满眼星辉奔盛宴,

岂料刀锋暗转冷光寒。

砧板无声锈色染,

纵有鳞光终成沫散。

一尾鱼追千重浪,

泡沫裂时残骨如山。

资本烹鲜何曾歇?

饕餮宴席终是修罗宴!

如果我的分享对你投资有所帮助,不吝啬给个点赞关注呗。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 子晓聊技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档