【问题标题】:Exporting Pandas series as JSON - error with numpy types将 Pandas 系列导出为 JSON - numpy 类型错误
【发布时间】:2013-09-07 02:24:45
【问题描述】:

我想将一些行从 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 兼容的最接近类型的函数?

【问题讨论】:

    标签: python json numpy pandas


    【解决方案1】:

    DataFrame 有一个方法可以将自己导出到json 字符串:

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

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

    >>> df.to_json(filename)
    

    【讨论】:

    • 它适用于 DataFrames,谢谢。它也适用于系列吗?我收到OverflowError: Maximum recursion level reached
    • @PiotrMigdal 它确实适用于Series。你能发布一个重现堆栈溢出的Series 对象吗?
    • @PhillipCloud 例如问题中的那个,即df.ix[0].to_json() 代表df = pd.DataFrame([[False,0],[True,1]], columns=['a','b'])
    • 我收到了'{"a":false,"b":0}',正如预期的那样。那是在 pandas git master 上,它可能有这个修复(而不是在 0.12 版本中)。让我看看。
    • @PhillipCloud 是的,这是 0.12 中的一个错误,但它已在 master 上修复。
    猜你喜欢
    • 2015-12-01
    • 2018-07-25
    • 2016-08-26
    • 2022-10-15
    • 2014-12-19
    • 2019-05-05
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    相关资源
    最近更新 更多