将 CSV 转换为 XML 或 JSON 是一种常见的数据格式转换任务。由于 CSV 文件是以逗号分隔的文本文件,它通常用于存储表格数据,而 XML 和 JSON 是更具结构性的文件格式,经常用于数据交换和存储。
CSV 转 XML
  XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,具有层次结构。将 CSV 转换为 XML 需要根据 CSV 文件的列名称生成 XML 元素,并且每一行数据成为 XML 中的一个节点。
示例:CSV 转 XML
  假设我们有一个简单的 CSV 文件 data.csv,内容如下:
csv
id,name,age
  1,John,28
  2,Alice,24
  3,Bob,35
  我们希望将其转换为以下的 XML 格式:
xml
<?xml version="1.0" encoding="UTF-8"?>
  <rows>
  <row>
  <id>1</id>
  <name>John</name>
  <age>28</age>
  </row>
  <row>
  <id>2</id>
  <name>Alice</name>
  <age>24</age>
  </row>
  <row>
  <id>3</id>
  <name>Bob</name>
  <age>35</age>
  </row>
  </rows>
  Python 示例:CSV 转 XML
  python
import csv
  import xml.etree.ElementTree as ET
# 读取CSV文件
  with open('data.csv', mode='r') as file:
  reader = csv.DictReader(file)
  
  # 创建根元素
  root = ET.Element("rows")
 for row in reader:
  row_element = ET.SubElement(root, "row")
  for field, value in row.items():
  field_element = ET.SubElement(row_element, field)
  field_element.text = value
 # 创建并写入XML文件
  tree = ET.ElementTree(root)
  tree.write("data.xml", encoding="utf-8", xml_declaration=True)
  CSV 转 JSON
  JSON(JavaScript 对象表示法)是一种轻量级的数据交换格式,易于人读写并且易于机器解析和生成。CSV 转 JSON 可以直接将 CSV 数据转换为一个包含对象的数组,其中每个对象代表一行数据。
示例:CSV 转 JSON
  假设我们有相同的 CSV 文件 data.csv,我们希望将其转换为以下的 JSON 格式:
json
[
  {
  "id": "1",
  "name": "John",
  "age": "28"
  },
  {
  "id": "2",
  "name": "Alice",
  "age": "24"
  },
  {
  "id": "3",
  "name": "Bob",
  "age": "35"
  }
  ]
  Python 示例:CSV 转 JSON
  python
import csv
  import json
# 读取CSV文件
  with open('data.csv', mode='r') as file:
  reader = csv.DictReader(file)
  rows = [row for row in reader]
# 写入JSON文件
  with open('data.json', mode='w') as json_file:
  json.dump(rows, json_file, indent=4)
  总结
  CSV 转 XML:我们需要为每一行创建一个 <row> 元素,并且为每一列创建相应的子元素。
  CSV 转 JSON:我们可以将每一行数据转换为一个对象,所有的行数据组成一个数组。