背景
Pandas中的DataFrame對象可以使用內置的.to_json()
方法轉換爲json格式的字符串,但是如果直接將這個字符串通過Flask返回給瀏覽器的話,看到的只是個字符串,並不是json對象.
@bp.route('/detail')
def get_detail():
# 省略df的創建過程
jdata = df.to_json(orient='records', force_ascii=False)
return jdata
實驗
使用Flask中的jsonify()
將df.to_json()
轉換的json字符串進行處理後返回瀏覽器變成json對象了,但是格式不正確,還是個字符串.
@bp.route('/detail')
def get_detail():
# 省略df的創建過程
jdata = df.to_json(orient='records', force_ascii=False)
return jsonify(jdata)
解決方法
使用Python內置json
庫的json.loads()
方法先將df.to_json
轉換的字符串加載爲Python內置的json對象,然後再使用Flask的jsonify
進行返回
@bp.route('/detail')
def get_detail():
# 省略df的創建過程
jdata = df.to_json(orient='records', force_ascii=False)
return jsonify(json.loads(jdata))