使用PeriodIndex时,熊猫Series.to_json()
函数正在创建不可读的JSON。
发生的错误是:
json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 5 (char 4)
我尝试过更改方向,但是在序列化和反序列化的所有这些组合中,索引丢失了。
idx = pd.PeriodIndex(['2019', '2020'], freq='A')
series = pd.Series([1, 2], index=idx)
json_series = series.to_json() # This is a demo - in reality I'm storing this in a database, but this code throws the same error
value = json.loads(json_series)
A link to the pandas to_json docs A link to the python json lib docs
我不使用json.dumps的原因是熊猫系列对象不可序列化。
Python 3.7.3熊猫0.24.2
答案 0 :(得分:0)
一种解决方法是在转储之前将PeriodIndex
转换为常规Index
,并在加载后将其转换回PeriodIndex
:
regular_idx = period_idx.astype(str)
# then dump
# after load
period_idx = pd.to_datetime(regular_idx).to_period()