![](/img/trans.png)
[英]How do I format real time JSON data (from sensors) into an Excel Workbook in Python?
[英]Excel to JSON using Python, how do I format this data to my needs?
所以我想读取一个 excel 文件并使用 python 将数据提取到 JSON 文件中。
excel 数据的格式如下:
Header 1 | Header 2 | Header 3
x00 x01 x02
x10 x11 x12
. . .
. . .
现在我已经设法正确完成大部分编码,我认为如下所示。 但是我真的需要以非常特定的格式获取 json output,这就是为什么我使用data[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 String 并将其存储在一个文件中,而不是您自己“创建”JSON。
第一个错误是当您将len(df)-1
传递到range
function 时。范围 function 自动转到passedValue-1
,因此您必须只传递它len(df)
。
在循环内部只创建一个dict
而不是一个字符串。 这是为您修改后的代码:
import json
import pandas as pd
df = pd.read_excel (r'D:\example.xlsx', sheet_name='Sheet1')
#initialize data
data=[0 for i in range(len(df))]
for i in range(len(df)):
# 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])+'"}'
data[i] = {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])}
output_lines = [json.dumps(line)+",\n" for line in data]
output_lines[-1] = output_lines[-1][:-2] # remove ",\n" from last line
with open('Savedwork.json', 'w') as json_file:
json_file.writelines(output_lines)
这是示例 Excel 文件的链接,我使用了: Sample XLSX
这是代码的示例 output:
{"Header1": "1", "Header2": "2", "Header3": "3"},
{"Header1": "6", "Header2": "5", "Header3": "4"},
{"Header1": "7", "Header2": "8", "Header3": "9"}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.