前言
excel表格中的數(shù)據(jù),轉(zhuǎn)化為json格式,再用程序去處理json數(shù)據(jù),是常見的數(shù)據(jù)處理方式。這樣可以實(shí)現(xiàn)按照需求去做數(shù)據(jù)處理。
需要用到的軟件
除了python環(huán)境外,主要用到讀取excel文件的庫,以及json數(shù)據(jù)格式處理庫。
常用的excel庫:
openpyxl: 可以用來讀寫Excel文件的庫??梢蕴幚?xlsx文件,支持讀取和寫入單元格、行、列等操作。
xlrd:可以用來讀取Excel文件的庫。可以處理.xls文件,包括讀取單元格、行、列等操作。
json庫:
json:Python自帶的JSON解析庫,支持將JSON字符串解析成Python對(duì)象,也支持將Python對(duì)象轉(zhuǎn)換為JSON字符串。
requests:第三方庫requests可以快速發(fā)送HTTP請(qǐng)求,并自動(dòng)解析JSON數(shù)據(jù)。
軟件的安裝:
例如,openpyxl的安裝方式如下:
pip install openpyxl
excel常用組件概念:
workbook對(duì)象:對(duì)應(yīng)于一個(gè)excel文件
Sheet對(duì)象:對(duì)應(yīng)于一個(gè)sheet
單元格對(duì)象:sheet中的一個(gè)單元格
行:sheet中的行
列:sheet中的列
openpyxl和xlrd都支持以上概念,都有對(duì)應(yīng)的獲取方法。文章來源:http://www.zghlxwxcb.cn/news/detail-458782.html
實(shí)踐
例子1: 用openpyxl來進(jìn)行excel的處理,json庫來進(jìn)行json數(shù)據(jù)的處理。
# -*- coding: utf-8 -*-
import os
import sys
import openpyxl
import json
import io
# 將json保存為文件
def save2json(jd, json_file_name):
file = io.open(json_file_name, 'w', encoding='utf-8')
# 把對(duì)象轉(zhuǎn)化為json對(duì)象
# indent: 參數(shù)根據(jù)數(shù)據(jù)格式縮進(jìn)顯示,讀起來更加清晰
# ensure_ascii = True:默認(rèn)輸出ASCII碼,如果把這個(gè)該成False, 就可以輸出中文。
txt = json.dumps(jd, indent=2, ensure_ascii=False)
file.write(txt)
file.close()
# excel表格轉(zhuǎn)json文件
def excel2json(excel_file, json_file_name):
# 加載工作薄
book = openpyxl.load_workbook(excel_file)
# 獲取sheet頁
sheet = book["Sheet1"]
# 行數(shù)
max_row = sheet.max_row
# 列數(shù)
max_column = sheet.max_column
print("max_row: %d, max_column: %d" % (max_row, max_column))
# 結(jié)果,數(shù)組存儲(chǔ)
result = []
heads = []
# 解析表頭
for column in range(max_column):
# 讀取的話行列是從(1,1)開始
heads.append(sheet.cell(1, column + 1).value)
# 遍歷每一行
for row in range(max_row):
if row == 0:
continue
one_line = {}
for column in range(max_column):
# 讀取第二行開始每一個(gè)數(shù)據(jù)
k = heads[column]
cell = sheet.cell(row + 1, column + 1)
value = cell.value
one_line[k] = value
print(one_line)
result.append(one_line)
book.close()
# 將json保存為文件
save_json_file(result, json_file_name)
#main
if '__main__' == __name__:
excel2json(u't1.xlsx', 'res.json')
例子2: 用xlrd來讀取excel文件:
# -*- coding: utf-8 -*-
import os
import sys
import json
import io
import xlrd
# 打開Excel文件,返回workbook對(duì)象
wb = xlrd.open_workbook('a.xls')
# 獲取Sheet對(duì)象
sheet = wb.sheet_by_name('Sheet1')
# 讀取某單元格的數(shù)據(jù)
print(sheet.cell_value(0, 0))
# 讀取某行數(shù)據(jù),返回一個(gè)列表
row = sheet.row_values(1)
print(row)
# 讀取某列數(shù)據(jù),返回一個(gè)列表
column = sheet.col_values(0)
print(column)
# 循環(huán)讀取多行數(shù)據(jù)
for i in range(sheet.nrows):
row = sheet.row_values(i)
print(row)
例子3: 用requests來處理網(wǎng)絡(luò)數(shù)據(jù):
import requests
url = 'http://api.mytest.com/v1/user'
response = requests.get(url)
# 解析JSON數(shù)據(jù)
data = response.json()
print(data)
# 訪問JSON數(shù)據(jù)的某一項(xiàng)
name = data[0]['name']
print(name)
以上,就是本篇的內(nèi)容了。文章來源地址http://www.zghlxwxcb.cn/news/detail-458782.html
到了這里,關(guān)于python-將excel表格中的數(shù)據(jù)轉(zhuǎn)化為json數(shù)據(jù)格式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!