最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)讀取Excel表數(shù)據(jù)并轉(zhuǎn)為JSON格式文件

 更新時間:2025年04月20日 09:04:53   作者:岫珩  
這篇文章主要為大家詳細(xì)介紹了Python如何使用pandas庫讀取Excel表并將其轉(zhuǎn)為JSON格式文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考下

Python讀取Excel表格數(shù)據(jù)并寫成JSON格式文件(精簡版)

1. 步驟

步驟 1: 安裝必要的庫

確保你已經(jīng)安裝了pandas和openpyxl(用于讀取Excel文件)。你可以使用pip來安裝這些庫:

pip install pandas openpyxl

步驟 2: 讀取Excel文件

使用pandas的read_excel函數(shù)來讀取Excel文件。

步驟 3: 將數(shù)據(jù)轉(zhuǎn)換為JSON格式

使用pandas的to_json方法將DataFrame轉(zhuǎn)換為JSON格式。

步驟 4: 保存JSON文件

將轉(zhuǎn)換后的JSON數(shù)據(jù)寫入到文件中。

2. 示例代碼

代碼如下

import pandas as pd
 
# 步驟 2: 讀取Excel文件
file_path = 'path_to_your_excel_file.xlsx'  # 替換為你的Excel文件路徑
df = pd.read_excel(file_path)
 
# 步驟 3: 將DataFrame轉(zhuǎn)換為JSON格式
# orient參數(shù)可以控制JSON的輸出格式,例如 'records', 'index', 'columns', 'values', 'split' 等。
# 這里使用'records'格式,它會將每一行數(shù)據(jù)作為一個對象。
json_data = df.to_json(orient='records')
 
# 步驟 4: 保存JSON文件
output_file_path = 'output.json'  # 指定輸出JSON文件的路徑和名稱
with open(output_file_path, 'w', encoding='utf-8') as f:
    f.write(json_data)
 
print("Excel數(shù)據(jù)已成功轉(zhuǎn)換為JSON并保存到文件。")

3. 注意事項(xiàng)

確保你的Excel文件路徑是正確的。

根據(jù)你的需求選擇合適的orient參數(shù)值。例如,如果你想要將列作為JSON對象的鍵,可以使用orient=‘columns’。不同的選項(xiàng)會影響JSON的結(jié)構(gòu)。

使用encoding='utf-8’確保在寫入文件時正確處理Unicode字符。

這樣,你就可以將Excel表格數(shù)據(jù)讀取并保存為JSON格式的文件了。

Python讀取Excel表數(shù)據(jù)轉(zhuǎn)為JSON格式文件(詳細(xì)優(yōu)化版)

1.詳細(xì)優(yōu)化部分

該部分以上面精簡代碼為基礎(chǔ)進(jìn)行優(yōu)化改造

1.1 下載pandas

使用pip命令下載pandas庫

pip install pandas openpyxl

1.2 讀取表格文件(可指定sheet頁)

讀取excel文件,可加參數(shù)sheet_name="sheet名稱"來指定Sheet頁,如果不指定,默認(rèn)第一個sheet頁

如想要讀取的名稱為Sheet2

df = pd.read_excel(file_path, sheet_name='Sheet2')

1.3 庫日期處理

由于表格中日期轉(zhuǎn)換為json后變成了一串?dāng)?shù)字,如何解決這個問題,可使用to_datetime函數(shù)

# 假設(shè)日期列名為'Date',且數(shù)據(jù)類型為整數(shù)(Excel序列號)
df['Date'] = pd.to_datetime(df['Date'], origin='unix', unit='D')  # 將Excel序列號轉(zhuǎn)換為datetime對象
df['Date'] = df['Date'].dt.strftime('%Y-%m-%d')  # 將datetime對象轉(zhuǎn)換為字符串格式'年-月-日'

1.4 布爾值轉(zhuǎn)換

表格中的true和false轉(zhuǎn)換時不會做處理,單如果json后續(xù)要導(dǎo)入到mysql表中,mysql表識別true和false會導(dǎo)入失敗,只能識別0和1
可以使用以下代碼將true和false轉(zhuǎn)為1和0

# 修改表中的Boolean值,滿足表中要求的0-1,而不是false true,不然導(dǎo)入報(bào)錯
df['是否加裝急停開關(guān)'] = df['是否加裝急停開關(guān)'].map({True: 1, False: 0})

1.5 空值Na的處理

如果出現(xiàn)了空值,可使用fillna函數(shù)替換,如下

# 將Na替換為空字符
df = df.fillna('')

1.6 列名替換

如果想修改讀取到的列名稱,可使用以下代碼將列名修改值

如excel表中列名是中文,為了更方便導(dǎo)入mysql表,這里將中文列名修改為對應(yīng)的表字段(非表中字段,而是小駝峰)

column_map ={
    '任務(wù)單編號': 'taskTicketId',
        '工號': 'employeeId'
        }

print(df.columns)
col_names = df.columns.to_list()
col_names = [column_map[s] for s in col_names]
print(col_names)
df.columns = col_names

2. 詳細(xì)優(yōu)化后的完整代碼

完整代碼如下

# 步驟 1:引入pandas庫
import pandas as pd
 
# 步驟 2: 讀取Excel文件
# file_path = 'path_to_your_excel_file.xlsx'  # 替換為你的Excel文件路徑
file_path = '車輛改造單數(shù)據(jù)庫.xlsm'  # 替換為你的Excel文件路徑
df = pd.read_excel(file_path, sheet_name='Sheet2')
# print(df)


# 假設(shè)日期列名為'Date',且數(shù)據(jù)類型為整數(shù)(Excel序列號)
# df['Date'] = pd.to_datetime(df['Date'], origin='unix', unit='D')  # 將Excel序列號轉(zhuǎn)換為datetime對象
# df['Date'] = df['Date'].dt.strftime('%Y-%m-%d')  # 將datetime對象轉(zhuǎn)換為字符串格式'年-月-日'

list = ['創(chuàng)建日期','樣品送達(dá)日期','要求完成日期','實(shí)際完成日期']

for i in list:
    df[i] = pd.to_datetime(df[i], origin='unix', unit='D')  # 將Excel序列號轉(zhuǎn)換為datetime對象
    df[i] = df[i].dt.strftime('%Y-%m-%d')  # 將datetime對象轉(zhuǎn)換為字符串格式'年-月-日'


# df['創(chuàng)建日期'] = pd.to_datetime(df['創(chuàng)建日期'], origin='unix', unit='D')  # 將Excel序列號轉(zhuǎn)換為datetime對象
# df['創(chuàng)建日期'] = df['創(chuàng)建日期'].dt.strftime('%Y-%m-%d')  # 將datetime對象轉(zhuǎn)換為字符串格式'年-月-日'
 

print(df['是否加裝急停開關(guān)'])
# 修改表中的Boolean值,滿足表中要求的0-1,而不是false true,不然導(dǎo)入報(bào)錯
df['是否加裝急停開關(guān)'] = df['是否加裝急停開關(guān)'].map({True: 1, False: 0})

# df = df.fillna('')

column_map ={
    '任務(wù)單編號': 'taskTicketId',
'工號': 'employeeId',
'委托人': 'requester',
'創(chuàng)建日期': 'creationDate',
'樣品送達(dá)日期': 'sampleDeliveryDate',
'要求完成日期': 'requiredCompletionDate',
'實(shí)際完成日期': 'completionDate'
}

print(df.columns)
col_names = df.columns.to_list()
col_names = [column_map[s] for s in col_names]
print(col_names)
df.columns = col_names

# 步驟 3: 將DataFrame轉(zhuǎn)換為JSON格式
# orient參數(shù)可以控制JSON的輸出格式,例如 'records', 'index', 'columns', 'values', 'split' 等。
# 這里使用'records'格式,它會將每一行數(shù)據(jù)作為一個對象。orient='records'確保JSON輸出為記錄列表。
# force_ascii=False確保輸出的JSON中包含非ASCII字符,例如中文。
# date_format='iso'確保日期以ISO格式輸出。如果你需要其他日期格式,可以相應(yīng)調(diào)整或去掉此參數(shù)。
json_data = df.to_json(orient='records', indent=4, force_ascii=False, date_format='iso',)
 
# 步驟 4: 保存JSON文件
# output_file_path = 'output.json'  # 指定輸出JSON文件的路徑和名稱
output_file_path = '車輛改造單數(shù)據(jù)庫.json'  # 指定輸出JSON文件的路徑和名稱

with open(output_file_path, 'w', encoding='utf-8') as f:
    f.write(json_data)
 
print("Excel數(shù)據(jù)已成功轉(zhuǎn)換為JSON并保存到文件。")

以上就是Python實(shí)現(xiàn)讀取Excel表數(shù)據(jù)并轉(zhuǎn)為JSON格式文件的詳細(xì)內(nèi)容,更多關(guān)于Python讀取Excel并轉(zhuǎn)為JSON的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

泗水县| 青浦区| 栾城县| 黎川县| 高平市| 阿巴嘎旗| 汤原县| 贵阳市| 武隆县| 周口市| 大田县| 沁阳市| 哈尔滨市| 铜山县| 克拉玛依市| 金山区| 霍林郭勒市| 唐山市| 昭通市| 邵阳市| 崇明县| 金川县| 安徽省| 洛川县| 安庆市| 黎平县| 肥乡县| 鄄城县| 托里县| 长海县| 株洲市| 噶尔县| 左权县| 宜阳县| 商洛市| 泊头市| 巢湖市| 蕲春县| 内江市| 绥江县| 甘德县|