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

时间:2013-09-03 18:38:20

标签: python json numpy pandas

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

TypeError: False is not JSON serializable

TypeError: 0 is not JSON serializable

我查看了我的数据,问题出现在numpy.int64numpy.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())

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

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

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

1 个答案:

答案 0 :(得分:7)

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

>>> df.to_json()
'{"a":{"0":false,"1":true},"b":{"0":0,"1":1}}'

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

>>> df.to_json(filename)