pandas to_json 返回一个字符串而不是 json 对象

Posted

技术标签:

【中文标题】pandas to_json 返回一个字符串而不是 json 对象【英文标题】:pandas to_json returns a string not a json object 【发布时间】:2017-09-22 16:05:28 【问题描述】:

我正在使用以下 python 代码返回一个 json 对象:

df_as_json = df.to_json(orient='split')
return jsonify('status': 'ok', 'json_data': df_as_json)

当我在 javascript 中读取对象时:

// response is xhr respose from server
const mydata = response.data
console.log(mydata.constructor.name)
// >Obj
const dfdata = mydata.json_data
console.log(dfdata.constructor.name)
// >String 

有没有办法将 df_as_json 作为父 response.data json 对象内的 json 对象发送?

【问题讨论】:

【参考方案1】:

只要返回dict,让jsonify把dict转成字符串。

df_as_json = df.to_dict()
return jsonify('status': 'ok', 'json_data': df_as_json)

【讨论】:

【参考方案2】:

python中没有“json对象”这回事,这就是为什么.to_json返回json对象的字符串表示,python中的json本质上和dict一样,你可以使用to_dict方法反而。

df_as_json = df.to_dict(orient='split')
return jsonify('status': 'ok', 'json_data': df_as_json)

【讨论】:

【参考方案3】:

可以直接在python中使用json。

# some JSON:
x =  ' "name":"John", "age":30, "city":"New York"'

# parse x:
y = json.loads(x)
return y

# the result is a Python dictionary:
print(y["age"])

【讨论】:

以上是关于pandas to_json 返回一个字符串而不是 json 对象的主要内容,如果未能解决你的问题,请参考以下文章

Pandas DataFrame to_json() 生成带点符号的索引

防止 Pandas to_json() 将时间组件添加到日期对象

将 pandas 数据帧转换为 json 对象 - pandas

pandas DataFrame 使用 to_json() 到字典列表

pandas.to_json 以特定形式输出日期格式

如何以附加模式导出 DataFrame to_json - Python Pandas?