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

使用pd.read_json报错:If using all scalar values must pass index

解决Pandas报错:If using all scalar values must pass index

问题原因

你当前的JSON是单个键值对对象(每个字段都是标量值),而pd.read_json()默认期望处理JSON数组(比如[{"name": "sani", ...}])或者每行一个JSON对象的文本格式。直接传入单个对象时,Pandas无法确定如何生成DataFrame的行索引,所以抛出这个错误。你尝试加index=0没用,因为pd.read_json()本身没有index参数。

三种可行的解决方法

方法1:把JSON改成数组格式

直接在原始JSON字符串外层加[],让它变成数组结构:

import pandas as pd

data = '[{"name": "sani", "address": "Czech", "Age": "10", "Gender": "Female"}]'
df = pd.read_json(data)
print(df)

方法2:先解析JSON为字典,再创建DataFrame

用json模块先把字符串转成字典,再通过pd.DataFrame生成表格:

import pandas as pd
import json

data = '{"name": "sani", "address": "Czech", "Age": "10", "Gender": "Female"}'
data_dict = json.loads(data)

# 方式A:把字典包装成列表传入
df = pd.DataFrame([data_dict])

# 方式B:用from_dict指定方向参数
df = pd.DataFrame.from_dict(data_dict, orient='index').T

方法3:使用pd.json_normalize(推荐)

这个方法专门处理单个或嵌套JSON对象,生成DataFrame更灵活:

import pandas as pd
import json

data = '{"name": "sani", "address": "Czech", "Age": "10", "Gender": "Female"}'
data_dict = json.loads(data)
df = pd.json_normalize(data_dict)

验证结果

以上方法都会生成如下结构的DataFrame:

name address Age  Gender
0  sani   Czech  10  Female

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:35:29