python - Pandas Series 写入和读取 json 数据时会出现带有 to_json 和 read_json 的 ValueError

标签 python json pandas series

<分区>

当使用 to_json 从 pandas.Series 对象将数据写入 json,然后使用 pandas.read_json 读取该数据时,我收到以下 ValueError

import pandas as pd
js = pd.Series([1, 2, 3], index=list('abc')).to_json()
js
# out: '{"a":1,"b":2,"c":3}'

pd.read_json(js)
# Traceback ... 
# ValueError: If using all scalar values, you must pass an index

显然因为 json 数据只包含 index:value 对,read_json 函数不知道将键解释为索引。

我还尝试了以下基于 docsorient 选项,这导致了不同的 ValueError

js = pd.Series([1, 2, 3], index=list('abc'), name='mydata').to_json(orient='split')
js
# out: '{"name":"mydata","index":["a","b","c"],"data":[1,2,3]}'
pd.read_json(js, orient='split')
# Traceback ... 
# ValueError: JSON data had unexpected key(s): name

我的问题是:如何配置 Series.to_json 以兼容 pd.read_json?这是改进系列默认 json 写入/读取行为的错误/机会吗?

感谢您的帮助!

最佳答案

简单修复,使用typ参数:

pd.read_json(js, typ='series')

a    1
b    2
c    3
dtype: int64

它是“typ”而不是“type”,以免与内置的 type 混淆!

关于python - Pandas Series 写入和读取 json 数据时会出现带有 to_json 和 read_json 的 ValueError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50105268/

相关文章:

python - 无法通过 Pandas 将 Excel 字段导入 Python - 索引越界错误

python - 如何启动外部程序并传入CSV文件?

javascript - JSON获取对象名称随机的对象的参数值

python - 如何使用 spaCy 从数据框列创建标记化单词列表?

Javascript:从 json 字符串中转义“

python - 使用 Python 提取 JSON 文件中的嵌套项

python - Pandas - 将列值组合到新列中的列表中

python - 在 Pandas 中使用具有通用后缀的变量名

python - 您需要将 EOS 和 BOS 代币放入自动编码器转换器中吗?

python - 在 matplotlib 图上设置自定义刻度间距