簡體   English   中英

如何通過使用 pandas 在工作表中覆蓋來在現有 excel 中寫入 json 數據?

[英]How can I write json data in an existing excel by overwriting in a sheet using pandas?

我有一些樣本 json 數據,格式如下:

{"VM": {"0": "v1", "1": "v2", "2": "v3", "3": "v4"},
 "Size in TB": {"0": "112", "1": "100", "2": "123", "3": "109"},
 "state": {"0": "ON", "1": "OFF", "2": "OFF", "3": "ON"}}

我想通過覆蓋現有工作表將此數據存儲在現有 excel 文件中。 我知道我將把這個 json 數據轉換為 excel 工作表的長期方法,然后我可以將新的 excel 復制到現有工作表。

import pandas as pd

json_data = pd.read_json(r'C:\Users\XYZ\data.json')
datafrme = pd.DataFrame(json_data)
datafrme.to_excel('C:/Users/XYZ/OutputExcelFileWithoutIndex.xlsx',index=False)

現在這個新的 excel 文件可以粘貼到現有的文件中。

from openpyxl import load_workbook
wb = load_workbook(r'C:\Users\XYZ\OutputExcelFileWithoutIndex.xlsx',data_only=True)
wb2 =load_workbook(r'C:\Users\XYZ\output.xlsx')
sheet1=wb["Sheet1"]
sheet2=wb2["Sheet5"]

for i in range(1,sheet1.max_row+1):
    for j in range(1,sheet1.max_column+1):
        sheet2.cell(row=i,column=j).value=sheet1.cell(row=i,column=j).value

我們有什么直接的方法可以直接復制現有 excel 中的 json 數據嗎?

要將df直接寫入現有 Excel 文件中的工作表,您可以編寫以下內容:

df_json = pd.read_json(r'C:\Users\XYZ\data.json')

# `mode='a' stands for "append', `if_sheet_exists='replace'` overwrites entire sheet,
# if sheet does not yet exist, it will be created
with pd.ExcelWriter(r'C:\Users\XYZ\output.xlsx', mode='a',
                    if_sheet_exists='replace', engine='openpyxl') as writer:
    df_json.to_excel(writer, sheet_name='Sheet1', index=None)

結果:

如果您不喜歡標准(索引和) header 格式, df.columns移至df的第一行,並添加header=None 像這樣:

with pd.ExcelWriter(r'C:\Users\XYZ\output.xlsx', mode='a', 
                    if_sheet_exists='replace', engine='openpyxl') as writer:
    df_json.T.reset_index().T.to_excel(writer, sheet_name='Sheet2', 
                                  index=None, header=None)

結果:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM