使用Python将Excel转换为JSON,如何根据需要格式化此数据?
因此,我想读取一个excel文件,并使用python将数据提取到JSON文件中 excel数据的格式如下:使用Python将Excel转换为JSON,如何根据需要格式化此数据?,python,json,excel,pandas,formatting,Python,Json,Excel,Pandas,Formatting,因此,我想读取一个excel文件,并使用python将数据提取到JSON文件中 excel数据的格式如下: Header 1 | Header 2 | Header 3 x00 x01 x02 x10 x11 x12 . . . . . . 现在,我已经成功地完成了大部分编码,我认为这是以
Header 1 | Header 2 | Header 3
x00 x01 x02
x10 x11 x12
. . .
. . .
现在,我已经成功地完成了大部分编码,我认为这是以下几点。但是,我确实需要以非常特定的格式获取json输出,这就是为什么我使用该行来表示数据[I]
import json
import pandas as pd
df = pd.read_excel (r'C:\Users\ezammit\Documents\Python Scripts\FILE.xlsx', sheet_name='sheet_1')
#initialize data
data=[0 for i in range(len(df) - 1)]
for i in range(len(df) - 1):
data[i] = r'{"'+str(df.columns.values[0])+'": "' +str(df.loc[i][0])+'", '+str(df.columns.values[1])+'": "' +str(df.loc[i][1])+'", '+str(df.columns.values[2])+'": "' +str(df.loc[i][2])+'"}'
with open('Savedwork.json', 'w') as json_file:
json.dump(data, json_file)
正如我提到的,我真的想在JSON文件中获得一种特定的格式,它应该完全如下所示:
{"Header1":"data[0][0]", "Header2":"data[0][1]", "Header3":"data[0][2]"},
{"Header1":"data[1][0]", "Header2":"data[1][1]", "Header3":"data[1][2]"},
{"Header1":"data[2][0]", "Header2":"data[2][1]", "Header3":"data[2][2]"},
...
您可以创建一个python字典,然后让python将其转换为JSON字符串并将其存储在文件中,而不是自己“创建”JSON
第一个错误是当您将len(df)-1
传递到range
函数时。range函数自动运行到passedValue-1
,因此您只需通过len(df)
在循环内部,只需创建一个dict
,而不是一个字符串。以下是为您修改的代码:
导入json
作为pd进口熊猫
df=pd.read\u excel(r'D:\example.xlsx',sheet\u name='Sheet1')
#初始化数据
数据=[0表示范围内的i(len(df))]
对于范围内的i(len(df)):
#数据[i]=r'{'+str(df.columns.values[0])+':“+str(df.loc[i][0])+”,“+str(df.columns.values[1])+”:“+str(df.loc[i][1])+”,“+str df.columns.values[2])+”:“+str
数据[i]={str(df.columns.values[0]):str(df.loc[i][0]),str(df.columns.values[1]):str(df.loc[i][2])
output_lines=[json.dumps(line)+“,\n”表示数据中的行]
输出_行[-1]=输出_行[-1][:-2]#从最后一行中删除“,\n”
将open('Savedwork.json','w')作为json_文件:
json_file.writelines(输出_行)
下面是指向示例Excel文件的链接,我使用了:
下面是代码的示例输出:
{“Header1”:“1”、“Header2”:“2”、“Header3”:“3”},
{“校长1”:“6”,“校长2”:“5”,“校长3”:“4”},
{“校长1”:“7”,“校长2”:“8”,“校长3”:“9”}
当然可以,字典是个好主意,谢谢你的建议。我已经运行了修改,在查看json文件时,我只需要在每行之后换行。有可能避免数组outer[]出现吗?@Rallad我已将代码和输出更新为完全符合您的要求