我正在尝试在YAML文件中存储一些笛卡尔坐标,然后使用python检索它,并从中生成一个元组。我尝试过以下方式
points.yml
type:
- point: [0, 0]
- point: [50, 50]
- point: [1500, 750]
- point: [450, 1500]
我正在使用以下代码从yaml读取数据:
with open('points.yml', 'r') as f:
doc = yaml.load(f)
points = [tuple(d.values()) for d in doc["type"]]
我正在获取列表元组列表
我想要生成的数据示例是:
points = (0,0),(50,50),(1500,750),(450,1500)
如果在这种情况下它更适合,我可以将数据存储为XML格式。
没有固定数量的积分,我可以有2或20个。
我需要这个元组才能使用Pillow的一些绘图功能。
答案 0 :(得分:2)
我已经“调整”了你的yaml文件:
type:
points:
- [0, 0]
- [50, 50]
- [1500, 750]
- [450, 1500]
代码:
import yaml
with open('points.yml', 'r') as f:
doc = yaml.load(f)
print([tuple(x) for x in doc['type']['points']])
输出:
[(0, 0), (50, 50), (1500, 750), (450, 1500)]
原始yaml文件的代码:
import yaml
with open('points.yml', 'r') as f:
doc = yaml.load(f)
print([tuple(p['point']) for p in doc['type']])
输出:
[(0, 0), (50, 50), (1500, 750), (450, 1500)]