You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Julia中便捷读取嵌套JSON为DataFrame?

将嵌套JSON转为Julia DataFrame的便捷方法

针对你遇到的问题,这里提供两种对应Python pd.json_normalize 的便捷解决方案:

1. 处理普通字典向量(无嵌套或浅嵌套)

如果你的json_r["data"]是标准的字典向量,只是直接转DataFrame失败,可以先将每个字典转换为NamedTuple,再构造DataFrame:

using DataFrames, JSON, HTTP

r = HTTP.get(url_instrument_list, headers)
json_r = JSON.parse(String(r.body))
data = json_r["data"]
# 将每个Dict转换为NamedTuple,再生成DataFrame
df_instruments = DataFrame(NamedTuple.(data))

这种方法会自动将字典的键作为列名,缺失的键对应位置填充missing。

2. 处理嵌套JSON结构(对应pd.json_normalize)

如果JSON存在多层嵌套结构,推荐使用JSONTables.jl包,它能自动展开嵌套的字典/数组,实现类似pd.json_normalize的功能:

步骤1:安装依赖包

using Pkg
Pkg.add(["JSONTables", "DataFrames", "HTTP", "JSON"])

步骤2:读取并转换

using DataFrames, JSON, HTTP, JSONTables

r = HTTP.get(url_instrument_list, headers)
json_r = JSON.parse(String(r.body))
data = json_r["data"]
# 自动解析嵌套JSON并转为DataFrame
df_instruments = DataFrame(jsontable(data))

原代码失败原因

你得到slots、keys、vals列,大概率是因为json_r["data"]中的元素不是标准的Dict类型,或者Julia的DataFrame构造函数对异构字典向量的解析方式与预期不符。通过转换为NamedTuple或使用JSONTables可以规避这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 12:36:18