当前位置: 首页 > 知识库问答 >
问题:

如何用seperator更新YML文件

梁建德
2023-03-14
nlu:
- intent: greet
  examples: |
    - hey
    - hello
    - hi
    - hello there
with open('nlu.yml', 'r') as yamlfile:
    cur_yaml = yaml.safe_load(yamlfile)
    cur_yaml['nlu'].append({ 'intent': 'name', 'examples': ['first', 'second']})

with open('nlu.yml', 'w') as yamlfile:
     yaml.safe_dump(cur_yaml, yamlfile)

共有1个答案

岳池暝
2023-03-14

不是分隔符。它是块标量的头,这意味着examples的值是一个标量,其内容为“-hey\n-hello\n-hi\n-hello there\n”。若要追加具有相同语义结构的另一序列项,您需要执行以下操作:

with open('nlu.yml', 'r') as yamlfile:
    cur_yaml = yaml.safe_load(yamlfile)
    cur_yaml['nlu'].append({ 'intent': 'name', 'examples': "- first\n- second\n"})

完整的工作示例:

import yaml, sys

input = """
nlu:
- intent: greet
  examples: |
    - hey
    - hello
    - hi
    - hello there
"""

cur_yaml = yaml.safe_load(input)
cur_yaml['nlu'].append({ 'intent': 'name', 'examples': "- first\n- second"})

yaml.safe_dump(cur_yaml, sys.stdout)

这一输出

nlu:
- examples: '- hey

    - hello

    - hi

    - hello there

    '
  intent: greet
- examples: '- first

    - second

    '
  intent: name
append_to_yaml("input.yaml", "output.yaml", [
  AppendableEvents(["nlu"],
    [MappingStartEvent(None, None, True), key("intent"), key("name"),
     key("examples"), literal_value("- hello there\n- general Kenobi\n"),
     MappingEndEvent()])])
nlu:
- intent: greet
  examples: |
    - hey
    - hello
    - hi
    - hello there
- intent: name
  examples: |
    - hello there
    - general Kenobi
 类似资料:
  • 问题内容: 如何用另一个.yml文件更新先前的conda环境。在具有多个需求文件(例如)的项目上工作时,这非常有用。 例如,下面是一个包含和pip软件包的文件: 碱基 实际环境是使用创建的 。 稍后,需要将其他软件包添加到中。例如,另一个文件需要导入这些更新。 先前完成此任务的尝试包括: 创建具有导入定义的文件: 然后运行命令: 。 这是行不通的。有什么想法吗? 问题答案: 尝试使用 或无需激活环

  • 我在Elasticsearch中索引了一个文档,如下所示: 我尝试通过以下命令更新计数字段: 但是,我收到了以下错误: 我到底做了什么,却不见了?我在http://www.elasticsearch.org/guide/reference/api/update.html跟踪文件,但它不起作用。 此外,我还包括父字段: 但还是没有成功。有人能帮我解决这个错误吗?

  • 在Spring Boot中,我知道我可以替换应用程序。属性与应用程序。yml并使用YAML格式。然而,我的申请。yml越来越拥挤了,所以我需要把它分开一点。我该怎么做?我想这样做:

  • 问题内容: 我有一个如下的json文件,我想使用更新值 update.json 我想编写一个PowerShell脚本,在其中 如何使用参数? 问题答案: 这是一种方法: 根据@FLGMwt和@mikemaccana,我改进了with,因为默认深度值为2,对于深度大于2的对象,尽管有对象,您仍会收到类信息。

  • 问题内容: 我正在使用Python,并且有一个JSON文件,我想在其中更新与给定键相关的值。也就是说,我包含以下数据 并且我只想将与键相关的值从更改为,以便更新后的文件如下所示: 我该怎么做? 我尝试了以下操作,但没有成功(更改未保存到文件中): 问题答案: 您根本没有保存更改的数据。您必须先加载,然后修改,然后再保存。无法就地修改JSON文件。 您也可以这样做: 如果要确保安全,请首先将新数据写

  • 我已经用UUID作为每个文件名的密钥将文件上传到s3 bucket,我要求将文件密钥作为存储的UUID,但当下载时,我需要将下载的文件名作为实际文件名,例如:foo.png aws S3-0E8221B9-9BF4-49D6-B0C0-D99E86F91F8E.png上存储的文件下载文件名应为:foo.bar 我尝试过设置Content-Disposition元数据,但在下载文件时仍然包含UUID