为了账号安全,请及时绑定邮箱和手机立即绑定

达到将熊猫数据帧转换为 Json 的最大递归级别

达到将熊猫数据帧转换为 Json 的最大递归级别

回首忆惘然 2022-08-16 10:50:41
我有一个熊猫数据帧,其中包含数千行和几列。我在尝试将其转换为json文件时遇到错误。这是要转换的代码:sessionAttendance.to_json('SessionAttendance.json')这是我得到的错误:OverflowError: Maximum recursion level reached                             _id       wondeID  session               updatedAt0       123456789101112131415161  AA1234567891        AM 2019-06-21 08:05:50.8451       123456789101112131415162  AA1234567892        AM 2019-06-21 08:05:50.8452       123456789101112131415163  AA1234567893        AM 2019-06-21 08:05:50.8453       123456789101112131415164  AA1234567894        AM 2019-06-21 08:05:50.845[234195 rows x 4 columns]
查看完整描述

2 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

它似乎与Mongo格式化其字段的方式有关,这些字段未被模块正确处理。解决方法是设置为强制 json 格式化程序对任何不需要的类型使用字符串表示形式:_idjsondefault_handler=str

sessionAttendance.to_json('SessionAttendance.json', default_handler=str)

免责声明:应注明给其他SO帖子


查看完整回答
反对 回复 2022-08-16
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

import sys
sys.setrecursionlimit(1500) # this number can be any limit

如果它是一个表,上面的代码应该修复它。如果您的 pandas 数据框本身具有对象列,则可能需要确保对象中没有循环依赖关系

https://github.com/pandas-dev/pandas/issues/4873

它可能与上面发布的问题有关。要超越它,请首先将日期时间列转换为字符串

df['updatedAt'] = df['updatedAt'].dt.strftime('%Y-%m-%d %H:%M:%S')

将其转换为 json 应该可以正常工作。


查看完整回答
反对 回复 2022-08-16
  • 2 回答
  • 0 关注
  • 183 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信