将不带标题的json文件转换为csv

时间:2019-09-06 19:50:03

标签: python json csv

我正在将json文件转换为csv文件。 json文件没有标题。它失败,并显示错误'unicode' object has no attribute 'values'

由于没有标题,因此失败:csvwriter.writerow(row.values())

json 文件,不包含标题:

{"ababab": "Complex numbers", "s1234": "Scatterplots"}

Python代码:

csv_output_path = output_path + "skill_names_" + str(report_date) + ".csv"
    #print(jsonoutput_path)

with open(local_path + filename) as f:
    data = json.load(f)
    print(data)

 # open file for writing
cd_skill_data = open(csv_output_path, 'w')

#create header for csv
csvwriter = csv.writer(cd_skill_data, delimiter=',')

for row in data:
    csvwriter.writerow(row.values())


cd_skill_data.close()

2 个答案:

答案 0 :(得分:0)

# Import Libraries
import pandas as pd
import json
from pandas.io.json import json_normalize

# Read Json file
myjson = {"ababab": "Complex numbers", "s1234": "Scatterplots"}
df2 = pd.DataFrame(json_normalize(myjson))
print df2.head(10)

# Export Json to CSV
df2.to_csv('C:/your_path/new_table.csv',encoding='utf-8', index=False, header=False)

答案 1 :(得分:0)

data是字典。当您遍历字典时,将遍历其键。因此,在您的循环中,row等于“ ababab”,然后等于“ s1234”。

在这里很难说出您的代码或数据是否错误。该代码需要字典列表。数据是单个字典(或用JSON术语“对象”表示)。

如果要获取字典列表,请在方括号的开头和结尾将数据更新。如果您只需要一个字典,则需要按原样处理数据,例如遍历data.items()