python不同文件格式!🍩

python不同文件格式

1.YAML

YAML(YAML Ain’t Markup Language或YAML是一种人类可读的数据序列化格式。它经常用于配置文件和数据交换格式,因为它与JSON类似,但具有更容易阅读的格式。

1
2
3
4
5
6
7
8
import yaml

# 读取YAML文件
with open('example.yaml', 'r') as file:
yaml_data = yaml.safe_load(file)

# yaml_data现在是包含YAML数据的Python对象(通常是字典或列表)
print(yaml_data)

使用PyYAML生成YAML数据:

1
2
3
4
5
6
7
8
9
10
import yaml

# 定义一个包含数据的Python对象
data = {'name': 'John', 'age': 30, 'city': 'New York'}

# 使用yaml.dump将Python对象转换为YAML字符串
yaml_string = yaml.dump(data)

# 打印生成的YAML字符串
print(yaml_string)

注意:PyYAML中的yaml.safe_load用于安全地加载YAML数据,以避免潜在的安全风险。在加载不受信任的YAML数据时,应使用safe_load而不是load

1
2
3
4
# example.yaml
name: John
age: 30
city: New York

为了增加安全性,自 PyYAML 版本 5.1.0 开始,它引入了默认的安全限制,不再允许加载任意类的对象。因此,在使用 yaml.load 时,为了避免潜在的安全风险,建议传递 Loader=yaml.FullLoader 参数。

1
2
3
4
5
6
7
8
import yaml

# 使用 FullLoader 加载 YAML 文件
with open('example.yaml', 'r') as file:
yaml_data = yaml.load(file, Loader=yaml.FullLoader)

# yaml_data 现在是包含 YAML 数据的 Python 对象(通常是字典或列表)
print(yaml_data)

这样的做法防止了潜在的代码注入攻击,因为 yaml.FullLoader 不会加载任意类的对象,只会加载基本的 Python 数据类型。在加载不受信任的 YAML 数据时,使用 yaml.FullLoader 是一个很好的做法。

在较早的版本中,yaml.load 是不安全的,因为它可以加载任意 Python 对象,包括不安全的对象。因此,为了防止安全漏洞,建议在使用 PyYAML 时明确指定 Loader 参数。

1
2
3
4
5
6
7
8
import yaml

# 使用 FullLoader 加载 YAML 文件
with open('example.yaml', 'r') as file:
yaml_data = yaml.load(file, Loader=yaml.FullLoader)

# yaml_data 现在是包含 YAML 数据的 Python 对象(通常是字典或列表)
print(yaml_data)

这样的做法防止了潜在的代码注入攻击,因为 yaml.FullLoader 不会加载任意类的对象,只会加载基本的 Python 数据类型。在加载不受信任的 YAML 数据时,使用 yaml.FullLoader 是一个很好的做法。

在较早的版本中,yaml.load 是不安全的,因为它可以加载任意 Python 对象,包括不安全的对象。因此,为了防止安全漏洞,建议在使用 PyYAML 时明确指定 Loader 参数。


python不同文件格式!🍩
https://yangchuanzhi20.github.io/2024/02/01/算法/python/python方法和技巧/python不同文件格式/
作者
白色很哇塞
发布于
2024年2月1日
许可协议