csv 文件和 json 文件的相互转换

csv文件方便批量编辑,可以借助excel完成

json文件作为一些软件的配置文件也经常出现,于是就有了文章标题的需求。

借助vscode+Fitten我快速开发并测试通过,用一段powershell代码来完成这个功能:

# JSON 转换为 CSV
function Convert-JsonToCsv {
    param (
        [string]$jsonPath,  # JSON 文件路径
        [string]$csvPath    # CSV 文件路径
    )
    # 读取 JSON 文件内容
    $jsonContent = Get-Content -Path $jsonPath -Encoding UTF8 | Out-String
    # 将 JSON 转换为 PowerShell 对象
    $data = $jsonContent | ConvertFrom-Json
    # 将 PowerShell 对象导出为 CSV 文件(指定 UTF-8 编码)
    $data | Export-Csv -Path $csvPath -NoTypeInformation -Encoding UTF8
    Write-Host "JSON 文件 $jsonPath 已成功转换为 CSV 并保存为 $csvPath"
}
# CSV 转换为 JSON
function Convert-CsvToJson {
    param (
        [string]$csvPath,   # CSV 文件路径
        [string]$jsonPath   # JSON 文件路径
    )
    # 从 CSV 文件导入数据(指定 UTF-8 编码)
    $csvData = Import-Csv -Path $csvPath -Encoding UTF8
    # 将 CSV 数据转换为 JSON 格式
    $jsonData = $csvData | ConvertTo-Json
    # 将 JSON 数据保存到文件(指定 UTF-8 编码)
    $jsonData | Out-File -FilePath $jsonPath -Encoding UTF8
    Write-Host "CSV 文件 $csvPath 已成功转换为 JSON 并保存为 $jsonPath"
}

把这段代码保存为 ConvertCsvJson.ps1,用  ipmo .\ConvertCsvJson.ps1 导入这个模块,测试如下:

Convert-CsvToJson .\config.csv config111.json

Convert-JsonToCsv config111.json config123.csv

都是成功的,这样就完成了相互转换。

我把json转换成csv后用excel快速编辑,编辑完再转回json作为配置文件让软件加载运行,节省了大量时间。

CSV(Comma-Separated Values)是一种常用的文件格式,它使用逗号分隔不同的字段,通常用于存储表格数据。而JSON(JavaScript Object Notation)则是一种轻量级的数据交换格式,它使用键值对的方式来表示数据。在Python中,我们可以使用内置的csvjson模块来实现CSV格式JSON之间的相互转换。 首先,假设我们有一个CSV文件,其中包含以下内容: ``` name,age,gender Alice,25,Female Bob,30,Male Charlie,35,Male ``` 我们可以使用csv模块来读取这个文件,并将其转换为Python中的字典列表: ```python import csv import json with open('data.csv', 'r') as f: reader = csv.DictReader(f) rows = list(reader) # 将字典列表转换JSON字符串 json_str = json.dumps(rows) print(json_str) ``` 这里的 `csv.DictReader` 函数可以读取CSV文件并返回一个字典迭代器,每个字典代表一行数据。我们可以将这些字典存储在一个列表中,然后使用 `json.dumps` 函数将其转换JSON字符串。 反过来,假设我们有一个JSON文件,其中包含以下内容: ```json [ {"name": "Alice", "age": 25, "gender": "Female"}, {"name": "Bob", "age": 30, "gender": "Male"}, {"name": "Charlie", "age": 35, "gender": "Male"} ] ``` 我们可以使用json模块来读取这个文件,并将其转换CSV格式: ```python import csv import json with open('data.json', 'r') as f: data = json.load(f) # 获取所有的字段名 fields = list(data[0].keys()) # 将数据写入CSV文件 with open('data.csv', 'w', newline='') as f: writer = csv.DictWriter(f, fieldnames=fields) writer.writeheader() for row in data: writer.writerow(row) ``` 这里的 `json.load` 函数可以读取JSON文件并返回一个Python对象,我们可以将其转换为列表。然后,我们可以使用 `data[0].keys()` 获取所有的字段名,然后使用 `csv.DictWriter` 函数将其写入CSV文件中。 希望这能够帮助您实现CSV格式JSON之间的相互转换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值