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

一文秒懂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日

相关文章

  • python自定义时钟类、定时任务类

    下面详细讲解“Python自定义时钟类、定时任务类”的完整攻略。 自定义时钟类 在Python中可以通过继承threading.Thread类来实现自定义时钟类。步骤如下: 定义一个时钟类,继承threading.Thread类,并重写构造方法和run方法,如下所示: import threading import time class Clock(thre…

    python 2023年6月3日
    00
  • python监控进程状态,记录重启时间及进程号的实例

    Python 可以通过 psutil 模块监控进程状态,记录进程号和重启时间。 安装 psutil 模块 psutil 模块可以通过 pip 安装,运行以下命令: pip install psutil 获取进程状态和进程号 可以通过 psutil 模块的 process_iter() 方法获取正在运行的进程列表。以下是一个示例: import psutil …

    python 2023年6月3日
    00
  • Pycharm激活方法及详细教程(详细且实用)

    Pycharm激活方法及详细教程 概述 Pycharm是一款常用的Python开发IDE,但它需要购买授权才能解锁全部功能。本教程将介绍Pycharm的激活方法以及详细教程,帮助用户免费使用Pycharm的全部功能。 Pycharm激活方法 第一步:下载Pycharm 在官网下载Pycharm的社区版或专业版,下载完毕后进行安装。下载链接:https://w…

    python 2023年5月18日
    00
  • 更改 Python 脚本的 DNS 服务器

    【问题标题】:Changing DNS server for Python script更改 Python 脚本的 DNS 服务器 【发布时间】:2023-04-05 11:42:01 【问题描述】: 我正在编写一个脚本,该脚本将在我大学的服务器上运行。该脚本的目的是检查网站并记录其 HTTP 状态代码和 IP 地址。这通常可以正常工作,但我遇到了一个我很难…

    Python开发 2023年4月5日
    00
  • Python-opencv实现红绿两色识别操作

    下面是Python-opencv实现红绿两色识别操作的完整攻略: 1. 安装OpenCV库 在终端中使用pip命令安装OpenCV库: pip install opencv-python 2. 读取图片 导入OpenCV库后,我们可以使用cv2.imread()函数读取图片。这个函数的参数是图片的路径。 import cv2 # 读取图片 img = cv2…

    python 2023年6月6日
    00
  • Python高效编程技巧

    Python高效编程技巧 为了让Python程序运行更高效,我们可以采用一些编程技巧来增强Python程序的效率。以下是一些Python高效编程的技巧。 1. 使用列表推导式代替循环 列表推导式(List Comprehension)能够产生一个新的列表,可以使用更少的代码完成列表的创建。使用列表推导式可以代替for循环等迭代操作,从而让程序运行更快。下面的…

    python 2023年5月13日
    00
  • Python编程利用科赫曲线实现三维飘雪效果示例过程

    首先,需要明确一下科赫曲线和三维飘雪效果的概念。 科赫曲线是一种无限迭代的分形曲线,是由简单的线段不断缩放、旋转和复制形成的,具有自相似和自同构的性质。它可以用递归函数实现,是非常具有美感和趣味性的数学曲线。 三维飘雪效果是指将二维的雪花动画效果转化为三维的立体效果,通过模拟雪花在空中的运动和旋转,使整个效果更加逼真和有趣。 现在,我们来详细讲解一下如何利用…

    python 2023年5月19日
    00
  • python向量化与for循环耗时对比分析

    针对这个话题,我给出一份完整的攻略,供参考。 一、背景介绍 在使用Python进行科学计算的过程中,常常涉及数据的向量化运算(向量化表示可以同时操作整个向量的计算)。而在Python中,想要实现向量化操作,通常使用NumPy库,它提供高性能的多维数组对象以及相关计算工具。 而在NumPy中,可以使用矩阵和向量的运算,使得代码看起来更加简洁、方便,也能够提高代…

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