我有一个pandas数据框,其中包含数千行和几列。尝试将其转换为json文件时出现错误。
这是要转换的代码:
sessionAttendance.to_json('SessionAttendance.json')
这是我得到的错误:
OverflowError: Maximum recursion level reached
_id wondeID session updatedAt
0 123456789101112131415161 AA1234567891 AM 2019-06-21 08:05:50.845
1 123456789101112131415162 AA1234567892 AM 2019-06-21 08:05:50.845
2 123456789101112131415163 AA1234567893 AM 2019-06-21 08:05:50.845
3 123456789101112131415164 AA1234567894 AM 2019-06-21 08:05:50.845
[234195 rows x 4 columns]
答案 0 :(得分:0)
这似乎与Mongo格式化_id
模块未正确处理的json
字段的方式有关。一种解决方法是将default_handler=str
设置为强制json格式化程序对任何不需要的类型使用字符串表示形式:
sessionAttendance.to_json('SessionAttendance.json', default_handler=str)
免责声明:应归功于其他SO post
答案 1 :(得分:-1)
import sys
sys.setrecursionlimit(1500) # this number can be any limit
如果是表,则上面的代码应对其进行修复。如果您的熊猫数据框本身具有作为对象的列,则可能需要确保对象中没有循环依赖项
https://github.com/pandas-dev/pandas/issues/4873
这可能与上面发布的问题有关。要克服它,首先将日期时间列转换为字符串
df['updatedAt'] = df['updatedAt'].dt.strftime('%Y-%m-%d %H:%M:%S')
将其转换为json应该可以。