使用python和yaml存储和检索坐标

时间:2016-02-19 20:11:10

标签: python coordinates yaml

我正在尝试在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的一些绘图功能。

1 个答案:

答案 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)]