前言
excel表格中的数据,转化为json格式,再用程序去处理json数据,是常见的数据处理方式。这样可以实现按照需求去做数据处理。
需要用到的软件
除了python环境外,主要用到读取excel文件的库,以及json数据格式处理库。
常用的excel库:
openpyxl: 可以用来读写Excel文件的库。可以处理.xlsx文件,支持读取和写入单元格、行、列等操作。
xlrd:可以用来读取Excel文件的库。可以处理.xls文件,包括读取单元格、行、列等操作。
json库:
json:Python自带的JSON解析库,支持将JSON字符串解析成Python对象,也支持将Python对象转换为JSON字符串。
requests:第三方库requests可以快速发送HTTP请求,并自动解析JSON数据。
软件的安装:
例如,openpyxl的安装方式如下:
pip install openpyxl
excel常用组件概念:
workbook对象:对应于一个excel文件
Sheet对象:对应于一个sheet
单元格对象:sheet中的一个单元格
行:sheet中的行
列:sheet中的列
openpyxl和xlrd都支持以上概念,都有对应的获取方法。文章来源:https://www.toymoban.com/news/detail-458782.html
实践
例子1: 用openpyxl来进行excel的处理,json库来进行json数据的处理。
# -*- 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')
# 把对象转化为json对象
# indent: 参数根据数据格式缩进显示,读起来更加清晰
# ensure_ascii = True:默认输出ASCII码,如果把这个该成False, 就可以输出中文。
txt = json.dumps(jd, indent=2, ensure_ascii=False)
file.write(txt)
file.close()
# excel表格转json文件
def excel2json(excel_file, json_file_name):
# 加载工作薄
book = openpyxl.load_workbook(excel_file)
# 获取sheet页
sheet = book["Sheet1"]
# 行数
max_row = sheet.max_row
# 列数
max_column = sheet.max_column
print("max_row: %d, max_column: %d" % (max_row, max_column))
# 结果,数组存储
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):
# 读取第二行开始每一个数据
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对象
wb = xlrd.open_workbook('a.xls')
# 获取Sheet对象
sheet = wb.sheet_by_name('Sheet1')
# 读取某单元格的数据
print(sheet.cell_value(0, 0))
# 读取某行数据,返回一个列表
row = sheet.row_values(1)
print(row)
# 读取某列数据,返回一个列表
column = sheet.col_values(0)
print(column)
# 循环读取多行数据
for i in range(sheet.nrows):
row = sheet.row_values(i)
print(row)
例子3: 用requests来处理网络数据:
import requests
url = 'http://api.mytest.com/v1/user'
response = requests.get(url)
# 解析JSON数据
data = response.json()
print(data)
# 访问JSON数据的某一项
name = data[0]['name']
print(name)
以上,就是本篇的内容了。文章来源地址https://www.toymoban.com/news/detail-458782.html
到了这里,关于python-将excel表格中的数据转化为json数据格式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!