一文秒懂python读写csv xml json文件各种骚操作

yizhihongxing

一文秒懂Python读写CSV/XML/JSON文件各种骚操作

本文将介绍Python处理CSV/XML/JSON三种常见文件格式的读写操作。

CSV文件的读写

CSV全称为Comma-Separated Values,即逗号分隔值。CSV是一种纯文本格式,以行为单位,每行为一个记录,以逗号分隔每条记录的各个字段。Python标准库中提供csv模块,可以轻松地读写CSV文件。

下面是一个示例,读取一份包含学生信息的CSV文件,并以指定格式输出:

import csv

with open('students.csv') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        print(f"Name: {row['Name']}, Age: {row['Age']}, Gender: {row['Gender']}")

在这个示例中,我们首先打开students.csv文件,然后通过csv.DictReader方法生成一个可迭代的reader对象,该对象每次迭代都会返回一个字典对象,其键为CSV文件中的列名,值为该行中该列的值。我们随后就可以使用这个字典对象来操作该条记录的各个字段。

如果我们要将一些数据写入到CSV文件中,则可以使用csv.writer方法。下面是一个示例代码,通过调用csv.writer将一些学生的信息写入到students.csv文件中:

import csv

students = [
    {'Name': 'Alice', 'Age': '20', 'Gender': 'Female'},
    {'Name': 'Bob', 'Age': '21', 'Gender': 'Male'},
    {'Name': 'Charlie', 'Age': '22', 'Gender': 'Male'}
]

with open('students.csv', 'w') as csvfile:
    fieldnames = ['Name', 'Age', 'Gender']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    writer.writeheader()
    for student in students:
        writer.writerow(student)

在这个示例中,我们定义了一个包含三个学生信息的列表,并将其写入到students.csv文件中。需要注意的是,我们需要先使用csv.DictWriter方法生成一个writer对象,并指定CSV文件中的列名。接着使用writer.writeheader()方法写入CSV文件的列名行,然后循环遍历学生信息列表,调用writer.writerow方法,将每个学生信息写入CSV文件中。

XML文件的读写

XML全称为eXtensible Markup Language,即可扩展标记语言。XML也是一种纯文本格式,以树形结构存储文档内容。Python标准库中提供xml.etree.ElementTree模块,可以轻松地读写XML文件。

下面是一个示例,读取一份包含书籍信息的XML文件,并以指定格式输出:

import xml.etree.ElementTree as ET

tree = ET.parse('books.xml')
root = tree.getroot()

for book in root.findall('book'):
    title = book.find('title').text
    author = book.find('author').text
    year = book.find('year').text
    print(f"Title: {title}, Author: {author}, Year: {year}")

在这个示例中,我们首先使用ET.parse方法解析books.xml文件,然后使用getroot方法获取XML文档的根节点。我们之后循环遍历XML文档中的每个book节点,并分别使用find方法获取该节点的titleauthoryear等子节点,最后打印出每条记录的信息。

如果我们要将一些数据写入到XML文件中,则可以使用ET.Element方法。下面是一个示例代码,通过调用ET.Element将一些学生的信息写入到students.xml文件中:

import xml.etree.ElementTree as ET

students = [
    {'Name': 'Alice', 'Age': '20', 'Gender': 'Female'},
    {'Name': 'Bob', 'Age': '21', 'Gender': 'Male'},
    {'Name': 'Charlie', 'Age': '22', 'Gender': 'Male'}
]

root = ET.Element('students')
for student in students:
    student_elem = ET.Element('student')
    name_elem = ET.Element('name')
    name_elem.text = student['Name']
    age_elem = ET.Element('age')
    age_elem.text = student['Age']
    gender_elem = ET.Element('gender')
    gender_elem.text = student['Gender']
    student_elem.append(name_elem)
    student_elem.append(age_elem)
    student_elem.append(gender_elem)
    root.append(student_elem)

tree = ET.ElementTree(root)
tree.write('students.xml', encoding='utf-8')

在这个示例中,我们定义了一个包含三个学生信息的列表,并将其写入到students.xml文件中。我们首先使用ET.Element方法生成一个名为students的根节点,并循环遍历学生信息列表,为每个学生创建一个名为student的节点,并在该节点下添加三个名为nameagegender的子节点。我们之后使用ET.ElementTree方法生成名为tree的XML文档,并调用write方法将其写入到文件中。

JSON文件的读写

JSON全称为JavaScript Object Notation,即JavaScript对象表示法。JSON同样也是一种纯文本格式,以key-value的形式存储数据。Python标准库中提供json模块,可以轻松地读写JSON文件。

下面是一个示例,读取一份包含电影信息的JSON文件,并以指定格式输出:

import json

with open('movies.json') as jsonfile:
    data = json.load(jsonfile)
    for movie in data['movies']:
        title = movie['title']
        year = movie['year']
        genre = movie['genre']
        print(f"Title: {title}, Year: {year}, Genre: {genre}")

在这个示例中,我们首先打开movies.json文件,然后通过json.load方法生成一个名为data的Python字典对象。我们之后访问该字典对象中的movies键,并循环遍历每个电影记录,并获取titleyeargenre等字段的值,最后通过print方法打印出每条记录的信息。

如果我们要将一些数据写入到JSON文件中,则可以使用json.dump方法。下面是一个示例代码,通过调用json.dump将一些学生的信息写入到students.json文件中:

import json

students = [
    {'Name': 'Alice', 'Age': 20, 'Gender': 'Female'},
    {'Name': 'Bob', 'Age': 21, 'Gender': 'Male'},
    {'Name': 'Charlie', 'Age': 22, 'Gender': 'Male'}
]

with open('students.json', 'w') as jsonfile:
    json.dump(students, jsonfile, indent=4)

在这个示例中,我们定义了一个包含三个学生信息的列表,并将其写入到students.json文件中。我们之后调用json.dump方法将该列表对象写入到文件中,同时设置indent参数为4,让输出的JSON格式更加易读。

总结

在本文中,我们分别介绍了Python处理CSV/XML/JSON三种常见文件格式的读写操作。在实际应用中,我们需要根据实际情况选择使用哪种格式,以及如何进行读写操作。通过不断的尝试与实践,我们可以更加熟练地掌握这些操作,提高自己的编程水平。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文秒懂python读写csv xml json文件各种骚操作 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Pandas之read_csv()读取文件跳过报错行的解决

    当使用pandas的read_csv()方法读取文件时,有时候会出现一些行无法正确的被转换为DataFrame对象的情况,此时可能会出现报错或者丢失数据的情况。本文将介绍如何通过读取CSV文件时跳过报错行,从而更好的处理文件。 1. 使用Python内置的csv模块进行文件处理 一个常见的场景是,读取的CSV文件有某些问题,不能按照标准格式读取,导致报错。这…

    python 2023年5月13日
    00
  • python http基本验证方法

    Python HTTP 基本验证方法 HTTP 基本验证是一种通过用户名和密码限制访问目标资源的安全机制。在 Python 中,我们可以使用 http.client 模块进行基本验证。该模块提供了一个名为 HTTPBasicAuthHandler 的认证处理器类,可以用于创建验证对象。 步骤 导入必要的模块:http.client、urllib.parse …

    python 2023年6月3日
    00
  • Redis 如何进行分布式事务处理?

    当多个客户端同时对 Redis 进行操作时,可能会出现数据不一致的情况。为了解决这个问题,Redis 提供了分布式事务处理机制。本文将详细讲解 Redis 如何进行分布式事务处理,包括实现原理和使用攻略。 Redis 分布式事务处理的实现原理 Redis 分布式事务处理的实现原理主要包括以下几个方面: 事务开启:客户端向 Redis 发送 MULTI 命令,…

    python 2023年5月12日
    00
  • Python提取PDF中的图片的实现示例

    以下是“Python提取PDF中的图片的实现示例”的完整攻略: 步骤一:安装依赖库 首先需要安装两个依赖库:PyPDF2和Pillow。可通过以下命令进行安装: pip install PyPDF2 Pillow 步骤二:打开PDF文件 在python中使用PyPDF2库来打开PDF文件。例如,打开文件mypdf.pdf: import PyPDF2 pdf…

    python 2023年5月19日
    00
  • python PyGame五子棋小游戏

    Python PyGame五子棋小游戏攻略 游戏规则 五子棋是一种双人对弈的纯策略型棋类游戏,通常使用黑白两色棋子,在15×15的棋盘上进行对弈。游戏的规则如下: 先手执黑子,后手执白子。 黑方先走,双方轮流落子。 每次落子只能在棋盘上空余的交叉点处落子。 若一方在横/竖/斜方向上形成了连续5个子,则获胜。 PyGame五子棋小游戏制作 第一步:准备工作 安…

    python 2023年6月3日
    00
  • python 基本数据类型占用内存空间大小的实例

    让我来给你讲解一下“Python 基本数据类型占用内存空间大小的实例”的完整攻略。 标准数据类型的内存占用 在 Python 中,标准数据类型包括整型(int)、浮点型(float)、复数型(complex)、字符串(str)、布尔型(bool)、列表(list)、元组(tuple)、字典(dict)、集合(set)等。这些数据类型占用的内存空间大小不同,下…

    python 2023年6月3日
    00
  • 如何在Python中进行多变量正态性测试

    在Python中进行多变量正态性测试,可以使用多种方法,包括使用统计模块scipy.stats中的shapiro函数和它的变体,以及使用矩阵特征值分解等方法。以下是其中两种方法的示例: 方法一:使用shapiro函数进行多变量正态性测试 使用scipy.stats中的shapiro函数,可以测试多个变量是否满足正态分布。下面是一个示例,它使用一个2×3的数据…

    python-answer 2023年3月25日
    00
  • python下载图片实现方法(超简单)

    下面是对“python下载图片实现方法(超简单)”完整攻略的详细讲解: 标题 在markdown中,标题可以用“#”来表示,#个数表示标题的级别,一般从1到6级。例如: 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 代码块 在markdown中,可以使用三个反引号“`将一段代码包裹起来,以表示代码块。例如: import requests u…

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部