Traceback (most recent call last):
File "extract_convert.py", line 109, in <module>
f.write(json.dumps(d, ensure_ascii=False) + '\n')
File "/home/pybuaa/Application/Anaconda3/envs/tf1/lib/python3.6/json/__init__.py", line 238, in dumps
**kw).encode(obj)
File "/home/pybuaa/Application/Anaconda3/envs/tf1/lib/python3.6/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/home/pybuaa/Application/Anaconda3/envs/tf1/lib/python3.6/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/home/pybuaa/Application/Anaconda3/envs/tf1/lib/python3.6/json/encoder.py", line 180, in default
o.__class__.__name__)
TypeError: Object of type 'int64' is not JSON serializable
错误场景:
对Numpy
和Pandas
结果进行json.dumps报错
-
python3中没有int64这个数据类型,所有的整型都是int
-
报错里的int64指的是
<class 'numpy.int64'>
,所以很有迷惑性
转换成python3内置数据类型即可
比如我需做出如下修改:
i = np.argmax([len(s) for s in summaries])
????
i = int(np.argmax([len(s) for s in summaries]))