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