当前位置: 首页 > news >正文

Python--常见的数据格式转换

下面是几个常见的数据格式转换的示例,涵盖了一些常用的格式,如 CSV、XML、YAML 等。每个示例都会介绍如何从一种格式转换到另一种格式。

1. CSV 转 JSON

CSV 文件通常以逗号分隔,行代表记录,列代表字段。我们可以使用 csvjson 模块来实现转换。

示例代码
import csv
import json# 定义输入和输出文件路径
csv_file = 'data.csv'
json_file = 'output.json'def csv_to_json(csv_file, json_file):data = []# 读取 CSV 文件并转换为字典列表with open(csv_file, mode='r', encoding='utf-8') as infile:reader = csv.DictReader(infile)for row in reader:data.append(row)# 将字典列表写入 JSON 文件with open(json_file, 'w', encoding='utf-8') as outfile:json.dump(data, outfile, indent=4, ensure_ascii=False)print(f"CSV to JSON conversion complete! Output saved to {json_file}")# 调用函数
csv_to_json(csv_file, json_file)
示例输入(CSV 文件 data.csv
name,age,city
John,30,New York
Jane,25,Los Angeles
输出(JSON 文件 output.json
[{"name": "John","age": "30","city": "New York"},{"name": "Jane","age": "25","city": "Los Angeles"}
]

2. JSON 转 CSV

从 JSON 文件转换为 CSV 文件,可以使用 Python 的 csv 模块写出 CSV 格式。

示例代码
import json
import csv# 定义输入和输出文件路径
json_file = 'data.json'
csv_file = 'output.csv'def json_to_csv(json_file, csv_file):with open(json_file, 'r', encoding='utf-8') as infile:data = json.load(infile)# 提取字段名(假设所有 JSON 对象都有相同的字段)fieldnames = data[0].keys()# 将数据写入 CSV 文件with open(csv_file, 'w', newline='', encoding='utf-8') as outfile:writer = csv.DictWriter(outfile, fieldnames=fieldnames)writer.writeheader()writer.writerows(data)print(f"JSON to CSV conversion complete! Output saved to {csv_file}")# 调用函数
json_to_csv(json_file, csv_file)
示例输入(JSON 文件 data.json
[{"name": "John", "age": 30, "city": "New York"},{"name": "Jane", "age": 25, "city": "Los Angeles"}
]
输出(CSV 文件 output.csv
name,age,city
John,30,New York
Jane,25,Los Angeles

3. XML 转 JSON

XML 是一种常用于数据交换的格式,Python 中可以使用 xmltodict 模块来处理 XML 数据并转换为 JSON。

示例代码
import xmltodict
import json# 定义输入和输出文件路径
xml_file = 'data.xml'
json_file = 'output.json'def xml_to_json(xml_file, json_file):# 读取 XML 文件with open(xml_file, 'r', encoding='utf-8') as infile:xml_content = infile.read()data_dict = xmltodict.parse(xml_content)  # 将 XML 转换为字典# 将字典写入 JSON 文件with open(json_file, 'w', encoding='utf-8') as outfile:json.dump(data_dict, outfile, indent=4, ensure_ascii=False)print(f"XML to JSON conversion complete! Output saved to {json_file}")# 调用函数
xml_to_json(xml_file, json_file)
示例输入(XML 文件 data.xml
<people><person><name>John</name><age>30</age><city>New York</city></person><person><name>Jane</name><age>25</age><city>Los Angeles</city></person>
</people>
输出(JSON 文件 output.json
{"people": {"person": [{"name": "John","age": "30","city": "New York"},{"name": "Jane","age": "25","city": "Los Angeles"}]}
}

4. YAML 转 JSON

YAML 是一种简洁的配置文件格式。可以使用 PyYAML 库将 YAML 文件转换为 JSON 文件。

示例代码
import yaml
import json# 定义输入和输出文件路径
yaml_file = 'data.yaml'
json_file = 'output.json'def yaml_to_json(yaml_file, json_file):# 读取 YAML 文件with open(yaml_file, 'r', encoding='utf-8') as infile:data = yaml.safe_load(infile)  # 将 YAML 加载为 Python 字典# 将字典写入 JSON 文件with open(json_file, 'w', encoding='utf-8') as outfile:json.dump(data, outfile, indent=4, ensure_ascii=False)print(f"YAML to JSON conversion complete! Output saved to {json_file}")# 调用函数
yaml_to_json(yaml_file, json_file)
示例输入(YAML 文件 data.yaml
people:- name: Johnage: 30city: New York- name: Janeage: 25city: Los Angeles
输出(JSON 文件 output.json
{"people": [{"name": "John","age": 30,"city": "New York"},{"name": "Jane","age": 25,"city": "Los Angeles"}]
}

5. JSON 转 YAML

可以使用 PyYAML 库将 JSON 文件转换为 YAML 文件。

示例代码
import json
import yaml# 定义输入和输出文件路径
json_file = 'data.json'
yaml_file = 'output.yaml'def json_to_yaml(json_file, yaml_file):# 读取 JSON 文件with open(json_file, 'r', encoding='utf-8') as infile:data = json.load(infile)# 将数据写入 YAML 文件with open(yaml_file, 'w', encoding='utf-8') as outfile:yaml.dump(data, outfile, allow_unicode=True)print(f"JSON to YAML conversion complete! Output saved to {yaml_file}")# 调用函数
json_to_yaml(json_file, yaml_file)
示例输入(JSON 文件 data.json
{"people": [{"name": "John","age": 30,"city": "New York"},{"name": "Jane","age": 25,"city": "Los Angeles"}]
}
输出(YAML 文件 output.yaml
people:
- age: 30city: New Yorkname: John
- age: 25city: Los Angelesname: Jane

总结

这些示例展示了如何在不同常见数据格式之间进行转换,包括 CSV、JSON、XML 和 YAML。这些操作在数据处理、配置文件转换、数据导入导出等任务中非常常用。


http://www.mrgr.cn/news/27974.html

相关文章:

  • 使用python编写工具:快速生成chrome插件相关文件结构
  • RHCE的学习(17)
  • AI 写作(九)实战项目二:智能新闻报道(9/10)
  • WPF中如何使用区域导航
  • 仪表板展示|DataEase看中国:历年双十一电商销售数据分析
  • JavaScript总结
  • 数据中台过时了?是否需要升级到数据飞轮?
  • 【字幕】恋上数据结构与算法之013动态数组01线性表
  • JavaScript 函数式编程之函子相关代码分享
  • pip install、yum install和conda install三者技术区分
  • jwt报错,位置:找不到符号 parseClaimsJws(java.lang.String)
  • 并发容器(Map、List、Set)实战及其原理分析
  • 在javascript中对象的键为什么只能是字符串或Symbol?
  • C++速通LeetCode简单第17题-爬楼梯
  • 【JS逆向分析】某药品网站价格(Price)解密
  • NFS在docker环境下无法写入文件的问题解决、NFS文件共享查看挂载客户端列表、mount监控及使用script命令保存屏幕终端输出内容
  • TS.38-2
  • 基于yolov8的无人机检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • THREE.js:网页上的3D世界构建者
  • AIGC文本生成
  • Luogu P1874 快速求和 (线性DP)
  • 【MySQL学习】基础指令全解:构建你的数据库技能
  • MySQL之约束
  • ArrayList 源码解析
  • 1.2 交换技术
  • Java contains()方法