将Pandas系列导出为JSON - numpy类型的错误

Pio*_*dal 3 python json numpy pandas

我想将一些行从Pandas DataFrame导出到JSON.但是,导出列时出现错误:

TypeError: False is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

要么

TypeError: 0 is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

我抬头查看了我的数据,问题出现了numpy.int64并且numpy.bool_(numpy.float64工作正常).

例如,出现以下问题:

import pandas as pd
import simplejson as json

df = pd.DataFrame([[False,0],[True,1]], columns=['a','b'])
json.dumps(df.ix[0].to_dict())
Run Code Online (Sandbox Code Playgroud)

(同样的事情发生dict(df.ix[0])).

是否有一个简单的解决方法将Pandas系列导出为JSON?

或者至少是一个将任何numpy类型强制转换为与JSON兼容的最接近类型的函数?

Vik*_*kez 7

DataFrame有一个将自身导出到json字符串的方法:

>>> df.to_json()
'{"a":{"0":false,"1":true},"b":{"0":0,"1":1}}'
Run Code Online (Sandbox Code Playgroud)

您也可以将其直接导出到文件中:

>>> df.to_json(filename)
Run Code Online (Sandbox Code Playgroud)

  • @PiotrMigdal 它确实适用于“系列”。您可以发布一个重现堆栈溢出的“系列”对象吗? (2认同)