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

嵌套的 JSON 值导致“类型错误:‘int64’类型的对象不是 JSON 可序列化的”

嵌套的 JSON 值导致“类型错误:‘int64’类型的对象不是 JSON 可序列化的”

婷婷同学_ 2021-10-05 16:12:51
会喜欢这里的一些帮助。完整上下文这是我的第一个“有目的的”Python 脚本。在此之前,我只涉足了一点,老实说还在学习,所以也许我在这里跳得太早了。长话短说,一直在修复各种类型的不匹配或只是一般的缩进问题(亲爱的大蟒蛇对此并不宽容)。我想我快完成了,但还有一些最后的问题。他们中的大多数似乎也来自同一部分。这个脚本只是为了获取一个包含 3 列的 csv 文件,并使用它来发送基于第一列(iOS 或 Android)的请求。这是错误堆栈跟踪:Reading in file: test.csvSending requests! Stand by...  0%|                                                                                                                                                        | 0/384 [00:00<?, ?it/s]Traceback (most recent call last):  File "a_GDPR_delete.py", line 199, in <module>    start()  File "a_GDPR_delete.py", line 191, in start    run( output_name, output_file, testing)  File "a_GDPR_delete.py", line 114, in run    android_request(device[position], timestamp, req_id, android, token, endpoint)  File "a_GDPR_delete.py", line 57, in android_request    body = json.dumps(body)  File "/Users/joseph/anaconda3/lib/python3.6/json/__init__.py", line 231, in dumps    return _default_encoder.encode(obj)  File "/Users/joseph/anaconda3/lib/python3.6/json/encoder.py", line 199, in encode    chunks = self.iterencode(o, _one_shot=True)  File "/Users/joseph/anaconda3/lib/python3.6/json/encoder.py", line 257, in iterencode    return _iterencode(o, 0)  File "/Users/joseph/anaconda3/lib/python3.6/json/encoder.py", line 180, in default    o.__class__.__name__)TypeError: Object of type 'int64' is not JSON serializable
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

感谢大家在这里如此迅速地提供帮助。显然,我被错误消息欺骗了,因为@juanpa.arrivillaga 的修复程序通过一次调整就完成了这项工作。

更正的代码在这些部分: android_request(str(device[position]), timestamp, req_id, android, token, endpoint)

和这里: ios_request(str(device[position]), timestamp, req_id, ios, token, endpoint)

即使这些值最初不是整数并且往往看起来像这样,我也不得不明显地转换为字符串 ab12ab12-12ab-34cd-56ef-1234abcd5678


查看完整回答
反对 回复 2021-10-05
?
素胚勾勒不出你

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

您可以numpy像这样检查dtypes:

if hasattr(obj, 'dtype'):
    obj = obj.item()

这会将其转换为最接近的等效数据类型

编辑:显然np.nan是 JSON 可序列化的,所以我从我的答案中删除了那个捕获


查看完整回答
反对 回复 2021-10-05
  • 2 回答
  • 0 关注
  • 247 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号