- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如何使用 YAML 在映射的映射中创建文字?
我正在尝试使用 PyYAML 将文字放入 YAML 中的映射映射中。基于YAML specs映射的映射是通过以下方式实现的:
Mark McGwire: {hr: 65, avg: 0.278}
Sammy Sosa: {
hr: 63,
avg: 0.288
}
而保留换行符的文字是通过以下方式完成的:
stats: |
63 Home Runs
0.288 Batting Average
现在我尝试将文字与映射的映射结合起来,如下所示:
Sammy Sosa: {
hr: 63,
avg: 0.288,
stats: |
63 Home Runs
0.288 Batting Average
}
并抛出错误:
yaml.scanner.ScannerError: while scanning for the next token
found character '|' that cannot start any token
in "test.yml", line 4, column 12
是否有其他方法或解决方法可以将文字放入 YAML 中的映射的映射中?
最佳答案
您的“字面量”更正式地称为 literal block style scalar 。除了block style有flow style 。您正在使用与键 Sammy Sosa
关联的值的流样式。
在flow style you are not allowed to have block style内
YAML allows flow nodes to be embedded inside block collections (but not vice-versa).
,但这就是您尝试对键 stats
的值执行的操作。除此之外,您也没有足够缩进文字标量。
通过删除匹配的 {
、}
和尾随 、
,将流样式映射更改为 block 样式。对齐键( block 样式中需要)并适当缩进文字标量(即比 stats
的起始列多)。
这是有效的 YAML,相当于您想要实现的目标:
Sammy Sosa:
hr: 63
avg: 0.288
stats: |
63 Home Runs
0.288 Batting Average
block 样式映射中的第一个示例流程样式映射也可以重写为 block 样式映射中的 block 样式映射,如下所示:
Mark McGwire:
hr: 65
avg: 0.278
Sammy Sosa:
hr: 63
avg: 0.288
<小时/>
为此目的没有区别,但您还应该注意,您使用的是 YAML 1.2 规范(从 2009 年开始),但 Python 的 PyYAML 库仅支持大多数较旧的 YAML 1.1(从 2005 年开始) )。
关于python - YAML 中映射的映射中的文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43740052/
是否可以在 yaml 中存储未转义的 Markdown 文档?我测试过 key:|+ markdown text block that could have any combination o
在解析使用两个空格缩进创建的 YAML(使用 Ruby 2.5/Psych)时,我看到了奇怪的行为。同一个文件,每行缩进四个空格 - 在我看来 - 正如预期的那样。 两个空格: windows:
如何在 yaml 文件中使用三元运算符让 snakeparser 解析它 我使用 groovy 来解析表达式,!e 标签帮助我这样做。现在,当我使用三元运算符时,解析器会失败。 name : abc
是否可以有这样的多行键? mykey: - > key one: keytwo: val 其中 keyone 被视为一个键。我想解析 yaml 以产生: { mykey:
我有一个 YAML 文件,它有几个不同的键,我想为其提供相同的值。此外,我希望该值易于配置。 请参阅下面的 YAML 以了解我的特定用例: --- # Options for attribute_va
在 Perl 中,我可以执行以下操作: my $home = "/home"; my $alice = "$home/alice"; 我可以在 YAML 中执行以下操作: Home: /home Al
如何在 YAML 中表示空字典? IE。它在语义上应该等同于空的 json-object {}。 最佳答案 简短回答:使用 {} 在 yaml 中有两种表示映射(字典)的方法; flow mappin
我需要根据 if 条件再添加一个名称。如果另一个 .yml 文件中的变量值为“yes”,则在列表中添加新名称 我的 yaml 文件中有以下代码: JsNames: - name: 'jquery.m
我是 yaml 新手,我对用于多行的管道符号 (|) 有疑问。 YAML 是否有类似下面的语法? test: |6+ 在下面的两个 YAML 文件中,第一个有效,第二个无效。我不知道是什么原因造成的。
关于 YAML specs关于问号有2.11段: A question mark and space (“? ”) indicate a complex mapping key. Within a b
1。摘要 我找不到如何自动美化我的 YAML 文件。 2。数据 示例: 我有 SashaPrettifyYAML.yaml 文件: sasha_commands: # Sasha comm
我试图理解 YAML 的基本概念。我没有找到任何相关文档可以消除我的疑虑。例如: product: - sku : BL394D quantity : 4
1。摘要 我找不到如何自动美化我的 YAML 文件。 2。数据 示例: 我有 SashaPrettifyYAML.yaml 文件: sasha_commands: # Sasha comm
是否有在 YAML 键中使用空格的正确方法?喜欢 a test: "hello world!" 或 "a test": "hello world!" 或者这只是一个坏主意,应该使用 a_test: "
我在 YAML 中遇到这个问题通过 perl 使用时。谁能告诉我哪里出了问题。 我有一个代码片段 use YAML; ... my $ifdef_struct = YAML::Load(': unde
我有一系列 OpenCv 生成的 YAML 文件,想用 yaml-cpp 解析它们 我在简单的事情上做得很好,但矩阵表示很困难。 # Center of table tableCenter: !!op
有没有办法在启动文件期间加载的 ROS yaml 文件中使用环境变量? 例如, 测试启动: 例子.yaml: vehicle_name: "${VEHICLE_NAME}_robot
Pandoc 支持 YAML metadata block在 Markdown 文档中。这可以设置标题和作者等。它还可以通过更改字体大小、边距宽度和赋予包含的图形的框架大小来操纵 PDF 输出的外观。
我使用当前(2013/12/12)最新版本的 yaml-cpp。 我注意到 YAML::Load("")和 YAML::Load("---\n...") 导致 Null 节点,即 YAML::Load
我喜欢 YAML。 等等,让我备份。我喜欢看起来像这样的 YAML,甚至比 JSON 还要多: Projects: C/C++ Libraries: - libyaml # "C"
我是一名优秀的程序员,十分优秀!