Syntax 如何手动写入yaml文件

Syntax 如何手动写入yaml文件,syntax,yaml,Syntax,Yaml,我正在尝试编写一个YAML文件,但它对我来说非常新,我无法理解嵌套部分 可以这样写一个文件吗 Manager : me@here.com custid : 380 employees : - Wright - Thompson - Hope Manager: me2@here.com custid : 381 employees : - Smith - Jones 每次我写这篇文章,都

我正在尝试编写一个YAML文件,但它对我来说非常新,我无法理解嵌套部分

可以这样写一个文件吗

Manager : me@here.com
    custid : 380
    employees :
        - Wright
        - Thompson
        - Hope

Manager: me2@here.com
    custid : 381
    employees :
       - Smith
       - Jones
每次我写这篇文章,都会出错

yaml.scanner.ScannerError: mapping values are not allowed here

这发生在custid部分之后。为什么会这样

Yaml只识别空格,所以如果您使用制表符进行缩进,可能这就是造成问题的原因。是让您开始学习的官方文档。

Yaml只识别空格,因此如果您使用制表符进行缩进,可能这就是导致您出现问题的原因。是让您开始学习的正式文档。

问题在于
经理的行:
。对于第一个,使用key
Manager
和scalar value
me@here.com
,然后在下一行继续缩进两个以上的键值对。由于缩进,解析器不知道在哪里附加这些内容

您可能想做:

- Manager : me@here.com
  custid : 380
  employees :
        - Wright
        - Thompson
        - Hope

- Manager: me2@here.com
  custid : 381
  employees :
       - Smith
       - Jones
i、 e.两名经理的列表,每个经理由一个映射组成,有三个键(经理、客户ID、员工)

您还可以将经理职位设置为隐式,并将电子邮件设置为密钥:

me@here.com:
  custid : 380
  employees :
        - Wright
        - Thompson
        - Hope

me2@here.com:
  custid : 381
  employees :
       - Smith
       - Jones
但在这种情况下,电子邮件必须是唯一的

您还可以在顶层使用更复杂的密钥(因此,只要角色不同,您就可以拥有相同的电子邮件)。ª:

但一般的规则是,如果没有为每条记录指定一些唯一的标识键,则需要使用列表



“%PyYAML不支持此表单is keys,但我的解析器可以处理此类(有效)YAML keys

问题在于
管理器的行:
。对于第一个,使用key
Manager
和scalar value
me@here.com
,然后在下一行继续缩进两个以上的键值对。由于缩进,解析器不知道在哪里附加这些内容

您可能想做:

- Manager : me@here.com
  custid : 380
  employees :
        - Wright
        - Thompson
        - Hope

- Manager: me2@here.com
  custid : 381
  employees :
       - Smith
       - Jones
i、 e.两名经理的列表,每个经理由一个映射组成,有三个键(经理、客户ID、员工)

您还可以将经理职位设置为隐式,并将电子邮件设置为密钥:

me@here.com:
  custid : 380
  employees :
        - Wright
        - Thompson
        - Hope

me2@here.com:
  custid : 381
  employees :
       - Smith
       - Jones
但在这种情况下,电子邮件必须是唯一的

您还可以在顶层使用更复杂的密钥(因此,只要角色不同,您就可以拥有相同的电子邮件)。ª:

但一般的规则是,如果没有为每条记录指定一些唯一的标识键,则需要使用列表



“%PyYAML不支持此表单is keys,但我的解析器可以处理此类(有效)YAML键

我没有使用制表符,我在使用空格,为什么我不能在“Manager”后面加一个值,因为如果我删除与“Manager”关联的电子邮件地址,它会起作用。我没有使用制表符,我在使用空格,为什么我不能在“Manager”后面加一个值“经理“因为如果我删除与‘经理’相关的电子邮件地址,它会起作用。好的,我明白你的意思。我希望根据选择的经理将员工集返回到Python程序。有什么方法可以做到这一点吗?当然可以,但您可以创建一个管理者列表并浏览该列表,为特定的键选择一个值以找到特定的管理者,或者您可以重新安排您的结构并使用顶级a映射,例如,唯一的电子邮件地址作为键,其余的作为该键的值,或者您创建一个复杂的键。我会用备选方案更新我的答案。谢谢!你让“经理职位含蓄,电子邮件是关键”这一部分正是我想要的好吧,我明白你的意思。我希望根据选择的经理将员工集返回到Python程序。有什么方法可以做到这一点吗?当然可以,但您可以创建一个管理者列表并浏览该列表,为特定的键选择一个值以找到特定的管理者,或者您可以重新安排您的结构并使用顶级a映射,例如,唯一的电子邮件地址作为键,其余的作为该键的值,或者您创建一个复杂的键。我会用备选方案更新我的答案。谢谢!你把“经理职位隐式化,电子邮件关键化”这一部分正是我想要的。我删掉了你对非现场文件的要求,这超出了你可以在此询问的范围。如果你在谷歌上搜索YAML规范,你应该访问官方网站,但我必须警告,该规范不是很容易访问的。我编辑了你的非现场文档请求,这超出了你可以在此询问的范围。如果你在谷歌上搜索YAML规范,你应该访问官方网站,但我必须警告,该规范不是很容易访问的。