我正在尝试将JSON结构化数据写入JSON文件。 js
数据帧包含这样的JSON数据:
[{"variable":"Latitude","min":26.845043,"Q1":31.1972475},{"variable":"Longitude","min":-122.315002,"Q1":-116.557795},{"variable":"Zip","min":20910.0,"Q1":32788.5}]
但是当我将其写入文件时,数据的存储方式有所不同。您能帮我将结果存储在dataframe(js)中吗?
"[{\"variable\":\"Latitude\",\"min\":26.845043,\"Q1\":31.1972475},{\"variable\":\"Longitude\",\"min\":-122.315002,\"Q1\":-116.557795},{\"variable\":\"Zip\",\"min\":20910.0,\"Q1\":32788.5}]"
代码:
import csv
import json
import pandas as pd
df = pd.read_csv(r'C:\Users\spanda031\Downloads\DQ_RESUlT.csv')
js = df.to_json(orient="records")
print(js)
# Read JSON file
with open('C:\\Users\\spanda031\\Downloads\\data.json', 'w') as data_file:
json.dump(js,data_file)
答案 0 :(得分:3)
import pandas as pd
import json
df = pd.read_csv("temp.csv")
# it will dump json to file
df.to_json("filename.json", orient="records")
输出为 filename.json :
[{"variable":"Latitude","min":26.84505,"Q1":31.19725},{"variable":"Longtitude","min":-122.315,"Q1":-116.558},{"variable":"Zip","min":20910.0,"Q1":32788.5}]
答案 1 :(得分:1)
我认为您正在对数据进行双重编码-df.to_json
将数据转换为JSON字符串。然后,您运行json.dump
,然后将已经编码的字符串再次编码为JSON-这导致将现有JSON括在引号中,并用反斜杠转义所有内部引号。最后得到JSON-in-- JSON,这不是必需的或不需要的。
您应该使用这些方法中的一种或另一种,但不能同时使用。使用df.to_json
来准确地序列化数据帧数据,然后将字符串作为文本直接写到文件中,可能是最简单的方法。
答案 2 :(得分:1)
对话是如此便宜,为什么不让我向您展示代码?
import csv
import json
import pandas as pd
df = pd.read_csv(r'C:\Users\spanda031\Downloads\DQ_RESUlT.csv')
// where magic happends! :)
js = df.to_dict(orient="records")
print(js)
# Read JSON file
with open('C:\\Users\\spanda031\\Downloads\\data.json', 'w') as data_file:
json.dump(js,data_file)