• python笔记74 yaml 使用特殊符号| 解决字符串带换行的问题 上海


    前言

    在yaml文件中通过字符串写一行,如果字符串需要换行的,可以使用 yaml中的特殊符号|和>。

    管道符 |

    | 这个控制符的作用是保留文本每一行尾部的换行符 "\n",等效于 |+。
    |+会额外保留整个文本最后的换行符 "\n"。
    |-会额外删除整个文本最后的换行符 "\n"。

    yaml文件内容

    name: yoyo
    key: |
      hello
      world
      welcome
    email: 123@qq.com
    

    读取yaml文件内容

    import yaml
    
    with open('x.yml', 'r', encoding='utf-8') as fp:
        y = yaml.safe_load(fp)
        print(y)
    

    运行结果

    {'name': 'yoyo', 'key': 'hello\nworld\nwelcome\n', 'email': '123@qq.com'}
    

    |+会额外保留整个文本最后的换行符 "\n", 等效于 |

    name: yoyo
    key: |+
      hello
      world
      welcome
    email: 123@qq.com
    

    如果不需要最后的换行符\n可以使用|-

    name: yoyo
    key: |-
      hello
      world
      welcome
    email: 123@qq.com
    

    实际效果

    {'name': 'yoyo', 'key': 'hello\nworld\nwelcome', 'email': '123@qq.com'}
    

    >控制符

    这个控制符的作用是将每一行尾部的换行符 "\n"替换为空格 " ",也就是将多行文本视为一行,等效于>+。

    • 会额外保留整个文本最后的换行符 "\n"。
    • 会额外删除整个文本最后的换行符 "\n",当没有显式添加|或>时,这是默认的行为。
      YAML格式
    name: yoyo
    key: >+
      hello
      world
      welcome
    email: 123@qq.com
    

    运行结果

    {'name': 'yoyo', 'key': 'hello world welcome\n', 'email': '123@qq.com'}
    

    YAML格式

    name: yoyo
    key: >-
      hello
      world
      welcome
    email: 123@qq.com
    

    运行结果

    {'name': 'yoyo', 'key': 'hello world welcome', 'email': '123@qq.com'}
    

    当追加了 "+" 时,如果最后一项正好在整个文件的结尾一定要注意多打个回车,因为最后一项后面的回车符就是控制的整个文本最后的回车符,如果这个回车符不存在,"+"也就无效了。

    name: yoyo
    key: |+
      hello
      world
      welcome
    
    
  • 相关阅读:
    解决IE9下JQuery的ajax失效的问题
    npm更新到最新版本的方法
    animate.css配合wow.min.js实现各种页面滚动效果
    Bootstrap导航点击菜单跳转与点击缩放菜单折叠按钮缓冲效果插件jquery.singlePageNav.min.js
    对json对象进行截取并按照某关键字进行排序
    巧用 position:absolute
    EasyUI Datagrid 分页
    Cssreset
    杂记
    for循环遍历json(附习题及答案)
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/16890827.html
Copyright © 2020-2023  润新知