我正在尝试使用 yaml 来表示包含车站和线路的火车网络;一个最小的工作示例可能是 3 个站点,线性连接,所以A<->B<->C
. 我代表三个站如下:
---
stations:
- A
- B
- C
现在我想在网络上存储不同的线路,以及它们的开始/结束位置。为此,我添加了一个行数组和一些锚点,如下所示:
---
stations:
- &S-A A
- &S-B B
- &S-C C
lines:
- &L-A2C A to C:
from: *S-A
to: *S-C
- &L-C2A C to A:
from: *S-C
to: *S-A
这是我遇到麻烦的部分:我想在每个车站存储每条线路的下一站。理想情况下是这样的:
---
stations:
- &S-A A:
next:
- *L-A2C: *S-B
- &S-B B:
next:
- *L-A2C: *S-C
- *L-C2A: *S-A
- &S-C C:
next:
- *L-C2A: *S-B
(lines
数组保持不变)
但这失败了——至少在 Python yaml 库中,说yaml.composer.ComposerError: found undefined alias 'L-A2C'
. 我知道为什么会这样——因为我还没有定义这条线。但是我不能先定义线路,因为它们取决于车站,但现在车站取决于线路。
有没有更好的方法来实现这一点?