pandas 的 to_json 方法返回的是一个字符串而不是一个 JSON 对象。

15

我正在使用以下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作为json对象发送到父响应数据的json对象中?
3个回答

32

在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})

1
JSON是一个字符串!它用于表示对象。你甚至可以说它是一种对象表示法,受JavaScript启发。 - reergymerej

1

只需返回字典,让 jsonify 将字典转换为字符串。

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

0
你可以直接在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"])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接