如何用Pandas从data.world导入JSON?解决ValueError报错问题
解决Pandas读取JSON时的「ValueError: Mixing dicts with non-Series may lead to ambiguous ordering」问题
问题情况
作为编程新手,我尝试读取加密货币相关的JSON数据到Pandas DataFrame时,两种操作方式都触发了相同错误:
- 尝试直接通过在线数据源链接读取:
import pandas as pd; df = pd.read_json('https://query.data.world/s/tcjtnx4d2kjaujslprdlgnr72wwoue') - 上传本地
EUR.json文件后读取:df = pd.read_json("EUR.json")
两次操作均抛出错误:ValueError: Mixing dicts with non-Series may lead to ambiguous ordering
可行解决方案
参考思路后,使用以下代码成功解决问题:
import json with open('EUR.json') as data_file: data = json.load(data_file) df = pd.json_normalize(data, record_path = ["data"])
方法说明
目标JSON数据存在嵌套层级,pd.read_json无法直接解析这种混合字典与非序列的复杂结构。而pd.json_normalize可以通过record_path参数指定要展开为DataFrame的具体数组节点,精准处理嵌套数据,避免解析冲突。
内容的提问来源于stack exchange,提问作者sleshworld
相关产品推荐
相关产品推荐

