Python JSON转YAML

2024年04月25日 Python JSON转YAML 极客笔记

Python JSON转YAML

在Python中,我们经常需要处理JSON(JavaScript Object Notation)和YAML(YAML Ain’t Markup Language)这两种数据格式。JSON是一种轻量级的数据交换格式,常用于数据传输和存储。而YAML则是一种人类可读的数据序列化格式,通常用在配置文件中。

在本文中,我们将详细讨论如何在Python中将JSON转换为YAML格式。我们将使用jsonpyyaml这两个库来实现这个转换过程。

准备工作

在开始之前,我们需要安装pyyaml库。你可以使用以下命令来安装它:

pip install pyyaml

JSON转YAML示例

假设我们有一个JSON格式的字符串,如下所示:

{
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

我们想将这个JSON字符串转换为YAML格式。下面是实现这个转换的Python代码:

import json
import yaml

# JSON字符串
json_str = '''
{
    "name": "Alice",
    "age": 30,
    "city": "New York"
}
'''

# 将JSON字符串转换为Python字典
data = json.loads(json_str)

# 将Python字典转换为YAML格式
yaml_str = yaml.dump(data)

print(yaml_str)

运行上述代码,我们将得到以下输出:

age: 30
city: New York
name: Alice

可以看到,我们成功将JSON格式的数据转换为了YAML格式。

从文件中读取JSON转YAML

除了从字符串转换外,我们还可以从文件中读取JSON数据并将其转换为YAML格式。假设我们有一个名为data.json的文件,包含以下内容:

{
    "name": "Bob",
    "age": 25,
    "city": "Chicago"
}

我们可以使用以下Python代码将其转换为YAML格式:

import json
import yaml

# 从文件中读取JSON数据
with open('data.json', 'r') as f:
    json_data = json.load(f)

# 将JSON数据转换为YAML格式
yaml_str = yaml.dump(json_data)

print(yaml_str)

运行上述代码将得到以下输出:

age: 25
city: Chicago
name: Bob

YAML转JSON

另外,我们还可以将YAML格式的数据转换为JSON格式。下面是一个YAML格式的数据:

name: Carol
age: 35
city: Los Angeles

我们可以使用如下代码将其转换为JSON格式:

import json
import yaml

# YAML字符串
yaml_str = '''
name: Carol
age: 35
city: Los Angeles
'''

# 将YAML字符串转换为Python字典
data = yaml.safe_load(yaml_str)

# 将Python字典转换为JSON格式
json_str = json.dumps(data, indent=4)

print(json_str)

运行以上代码,我们将得到以下输出:

{
    "name": "Carol",
    "age": 35,
    "city": "Los Angeles"
}

总结

通过本文的介绍,我们学习了如何在Python中进行JSON和YAML格式之间的转换。这对于在处理数据时非常有用,尤其是在读取配置文件或进行数据交换时。

本文链接:http://so.lmcjl.com/news/3093/

展开阅读全文