python3 循环读取excel文件并写入json操作

我来为您讲解一下“Python3循环读取Excel文件并写入JSON操作”的完整实例教程。

简介

在实际开发中,我们经常需要将Excel表格中的数据转换为JSON格式,以便于在Web开发中进行使用。本文就是介绍如何使用Python3语言循环读取Excel文件,并将其转换为JSON格式进行保存。

前置准备

在开始实现这个操作之前,我们需要先安装三个Python库:

  • openpyxl:用于读取Excel文件
  • pandas:用于将Excel文件转换为DataFrame格式
  • json: 用于将DataFrame格式的数据转换为JSON格式

安装方法:

pip install openpyxl pandas json

实现过程

下面,我们来详细介绍具体的实现过程。

1. 导入Python库

在Python程序中,我们需要先导入三个库:openpyxlpandasjson

import openpyxl
import pandas as pd
import json

2. 读取Excel文件

我们可以使用openpyxl库中的load_workbook()函数来读取Excel文件,然后使用Sheetnames属性来获取Excel文件中的所有Sheet,最后可以使用get_sheet_by_name()方法来获取指定的Sheet。

wb = openpyxl.load_workbook('example.xlsx')
sheet_names = wb.sheetnames
ws = wb.get_sheet_by_name(sheet_names[0])

3. 将Excel文件转换为DataFrame

使用pandas库的read_excel()函数可以很容易地将Excel文件转换为DataFrame格式。

df = pd.read_excel('example.xlsx', sheet_name=sheet_names[0])

4. 将DataFrame格式的数据转换为JSON格式并写入文件

使用to_json()函数可以将DataFrame格式的数据转换为JSON格式,默认情况下,转换结果是压缩格式的。如果需要化地转换出含有缩进、换行符等格式的JSON,可以使用to_json()函数中的pretty_print参数。

json_string = df.to_json(orient='records', pretty_print=True)
with open('example.json', mode='w', encoding='utf-8') as json_file:
    json_file.write(json_string)

5. 完整代码

import openpyxl
import pandas as pd
import json

wb = openpyxl.load_workbook('example.xlsx')
sheet_names = wb.sheetnames
ws = wb.get_sheet_by_name(sheet_names[0])

df = pd.read_excel('example.xlsx', sheet_name=sheet_names[0])

json_string = df.to_json(orient='records', pretty_print=True)
with open('example.json', mode='w', encoding='utf-8') as json_file:
    json_file.write(json_string)

6. 示例说明

下面,我来举两个操作实例进行说明:

示例1:写入的JSON文件多行插入制表符

当我们写入的JSON文件中有多行数据时,使用默认的写入方式会将所有的数据写入到同一行中。为了让JSON文件看起来更加清晰,我们可以使用json.dump()写入文件,并指定indent参数使其插入制表符,从而美化输出。

import openpyxl
import pandas as pd
import json

wb = openpyxl.load_workbook('example.xlsx')
sheet_names = wb.sheetnames
ws = wb.get_sheet_by_name(sheet_names[0])

df = pd.read_excel('example.xlsx', sheet_name=sheet_names[0])

json_list = json.loads(df.to_json(orient='records'))
with open('example.json', mode='w', encoding='utf-8') as json_file:
    json.dump(json_list, json_file, indent=2)

示例2:忽略空值的列

有时候我们的Excel表格中会存在部分空值的列,而这些空值会被转换为JSON格式中的null值。为了让转换后的JSON文件更加干净美观,我们可以在转换过程中进行空值的过滤,只保留非空的列。

import openpyxl
import pandas as pd
import numpy as np
import json

wb = openpyxl.load_workbook('example.xlsx')
sheet_names = wb.sheetnames
ws = wb.get_sheet_by_name(sheet_names[0])

df = pd.read_excel('example.xlsx', sheet_name=sheet_names[0])

df = df.replace({np.nan: None})
df = df.dropna(axis='columns', how='all')

json_string = df.to_json(orient='records', null_handler=lambda x: None, pretty_print=True)
with open('example.json', mode='w', encoding='utf-8') as json_file:
    json_file.write(json_string)

总结

通过以上的介绍和实现,我们即可使用Python3来循环读取Excel文件,并将其转换为JSON格式进行保存。同时,我们还可以进行美化输出、特殊数据处理等多方面的操作,让数据格式更加美观和规范。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3 循环读取excel文件并写入json操作 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • pip报错“ImportError: cannot import name ‘main’”怎么处理?

    当使用 pip 安装 Python 包时,可能会遇到 “ModuleNotFoundError: No module named ‘setuptools'” 错误。这个错误通常是由于 setuptools 没有正确安装或 setuptools 的路径没有添加到系统路径中导致的。以下是详细讲解 pip 报错 “ModuleNotFoundError: No m…

    python 2023年5月4日
    00
  • 在 Python 中找出代理类型(http、socks 4/5)?

    【问题标题】:Find out the proxy type (http, socks 4/5) in Python?在 Python 中找出代理类型(http、socks 4/5)? 【发布时间】:2023-04-03 19:33:01 【问题描述】: 我正在尝试制作一个从 Charon 获取代理列表的程序,它看起来像 202.43.178.31:3128…

    Python开发 2023年4月8日
    00
  • Python中利用pyqt5制作指针钟表显示实时时间(指针时钟)

    让我为你详细讲解一下如何在 Python 中使用 PyQt5 库制作指针时钟显示实时时间。 1. 创建 Qt 应用程序 首先,需要导入 PyQt5 库和系统时间模块,然后创建一个 Qt 应用程序。 import sys import datetime from PyQt5.QtWidgets import QApplication, QWidget from…

    python 2023年6月2日
    00
  • 用python修改excel表某一列内容的操作方法

    下面给出一个用Python修改Excel表某一列内容的完整实例教程。 准备工作 首先需要安装Python的pandas库和openpyxl库。 pip install pandas openpyxl 然后需要准备一个Excel表格,在这个例子中我们使用一个示例表格 example.xlsx,该表格有三列数据:id、name和 age,其中 id 是整型,na…

    python 2023年5月13日
    00
  • 基于python实现上传文件到OSS代码实例

    阿里云对象存储(OSS)是一种高可用、高可靠、高扩展性的云存储服务,可以用于存储和管理各种类型的文件。本文将详细讲解基于Python实现上传文件到OSS的完整攻略,包括使用aliyun-python-sdk-oss库和boto3库两个示例。 使用aliyun-python-sdk-oss库上传文件到OSS的示例 以下是一个示例,演示如何使用aliyun-py…

    python 2023年5月15日
    00
  • Linux下安装PocketSphinx

    下面是安装PocketSphinx的完整攻略: 1. 安装依赖软件包 在安装PocketSphinx之前,我们需要安装一些依赖软件包,包括cmake、autoconf、libtool、bison、swig等。在终端(Terminal)中输入如下命令即可: sudo apt-get install cmake autoconf libtool bison sw…

    python 2023年5月19日
    00
  • python结合多线程爬取英雄联盟皮肤(原理分析)

    下面是详细讲解“python结合多线程爬取英雄联盟皮肤(原理分析)”的完整攻略: 一、背景介绍 本文将介绍如何使用Python语言结合多线程爬取英雄联盟皮肤。传统的网络爬虫往往单线程爬取,速度较慢。而多线程可以大大加快爬取速度,提高代码效率。 二、Python多线程爬虫原理 多线程是指CPU同时执行多个线程,从而提高程序的处理能力。在Python中,我们可以…

    python 2023年6月5日
    00
  • `cimport` 导致交互式 Python 解释器出错

    【问题标题】:`cimport` causes error in interactive Python interpreter`cimport` 导致交互式 Python 解释器出错 【发布时间】:2023-04-06 09:10:02 【问题描述】: 在 Python 解释器中运行 cimport cython 或 cimport numpy 会导致以下错…

    Python开发 2023年4月6日
    00
合作推广
合作推广
分享本页
返回顶部