【问题标题】:Extract dtypes from dataframe and map to header从数据框中提取数据类型并映射到标题
【发布时间】:2017-12-05 18:03:06
【问题描述】:

我需要将关于数据框的列标题及其数据类型的 json 返回到前端。我试过了:

return {"column header" : header, "filename" : newFilename, 
        "data": result.head(n= rowsLimit).values.tolist(), 
        "datatype": result.dtypes.tolist()}

result.dtypes.tolist() 上,我收到dtype('int64') is not JSON serializable 错误。

谢谢

【问题讨论】:

  • 您希望得到的 datatype 值在 JSON 中看起来像什么?
  • 可能是json数组的数组。 [ ["Header1", "int64"], ["Header2" ,"object"] ],或者只是一个数据类型列表,前端将它们与列标题索引正确映射

标签: python json pandas dataframe


【解决方案1】:

数据类型有一个name 属性,可用于返回字符串:

{"datatype": [t.name for t in result.dtypes.tolist()]} 

【讨论】:

  • 他们都在工作。感谢您介绍 name 属性。
【解决方案2】:

将它们转换为字符串是一种选择:

>>> json.dumps({"datatype": [str(d) for d in result.dtypes.tolist()]})
'{"datatype": ["float64", "float64", "float64", "float64"]}'

或者,您可以使用repr

>>> json.dumps({"datatype": [repr(d) for d in result.dtypes.tolist()]})
'{"datatype": ["dtype(\'float64\')", "dtype(\'float64\')", "dtype(\'float64\')", "dtype(\'float64\')"]}'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多