python yaml.dump 错误缩进

2024-03-02

我正在执行以下 python 代码:

import yaml


foo = {
    'name': 'foo',
    'my_list': [{'foo': 'test', 'bar': 'test2'}, {'foo': 'test3', 'bar': 'test4'}],
    'hello': 'world'
}

print(yaml.dump(foo, default_flow_style=False))

但正在打印:

hello: world
my_list:
- bar: test2
  foo: test
- bar: test4
  foo: test3
name: foo

代替:

hello: world
my_list:
  - bar: test2
    foo: test
  - bar: test4
    foo: test3
name: foo

我怎样才能缩进my_list元素就这样?


这张票 https://web.archive.org/web/20170903201521/https://pyyaml.org/ticket/64建议当前的实现正确遵循the spec http://yaml.org/spec/1.2/spec.html#id2777534:

这 ”-”, ”?”用于表示块集合条目的“:”字符被人们认为是缩进的一部分。这是由相关制作部门根据具体情况进行处理。

在同一个线程上,还有这段代码片段 https://web.archive.org/web/20170903201521/https://pyyaml.org/ticket/64#comment:5(修改以适合您的示例)以获得您正在寻找的行为:

import yaml

class MyDumper(yaml.Dumper):

    def increase_indent(self, flow=False, indentless=False):
        return super(MyDumper, self).increase_indent(flow, False)

foo = {
    'name': 'foo',
    'my_list': [
        {'foo': 'test', 'bar': 'test2'},
        {'foo': 'test3', 'bar': 'test4'}],
    'hello': 'world',
}

print yaml.dump(foo, Dumper=MyDumper, default_flow_style=False)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python yaml.dump 错误缩进 的相关文章

  • 使用 pythonbrew 编译 Python 3.2 和 2.7 时出现问题

    我正在尝试使用构建多个版本的 python蟒蛇酿造 http pypi python org pypi pythonbrew 0 7 3 但我遇到了一些测试失败 这是在运行的虚拟机上 Ubuntu 8 04 32 位 当我使用时会发生这种情
  • 没有名为 crypto.cipher 的模块

    我现在正在尝试加密一段时间 我最近得到了这个基于 python 的密码器 名为PythonCrypter https github com jbertman PythonCrypter 我对 Python 相当陌生 当我尝试通过终端打开 C
  • 通过 Scrapy 抓取 Google Analytics

    我一直在尝试使用 Scrapy 从 Google Analytics 获取一些数据 尽管我是一个完全的 Python 新手 但我已经取得了一些进展 我现在可以通过 Scrapy 登录 Google Analytics 但我需要发出 AJAX
  • Python 的键盘中断不会中止 Rust 函数 (PyO3)

    我有一个使用 PyO3 用 Rust 编写的 Python 库 它涉及一些昂贵的计算 单个函数调用最多需要 10 分钟 从 Python 调用时如何中止执行 Ctrl C 好像只有执行结束后才会处理 所以本质上没什么用 最小可重现示例 Ca
  • Django 管理员在模型编辑时间歇性返回 404

    我们使用 Django Admin 来维护导出到我们的一些站点的一些数据 有时 当单击标准更改列表视图来获取模型编辑表单而不是路由到正确的页面时 我们会得到 Django 404 页面 模板 它是偶尔发生的 我们可以通过重新加载三次来重现它
  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • 通过最小元素比较对 5 个元素进行排序

    我必须在 python 中使用元素之间的最小比较次数来建模对 5 个元素的列表进行排序的执行计划 除此之外 复杂性是无关紧要的 结果是一个对的列表 表示在另一时间对列表进行排序所需的比较 我知道有一种算法可以通过 7 次比较 总是在元素之间
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • 向 Altair 图表添加背景实心填充

    I like Altair a lot for making graphs in Python As a tribute I wanted to regenerate the Economist graph s in Mistakes we
  • Conda SafetyError:文件大小不正确

    使用创建 Conda 环境时conda create n env name python 3 6 我收到以下警告 Preparing transaction done Verifying transaction SafetyError Th
  • GitHub Actions:如何将 toJSON() 结果传递给 shell 命令

    因此 我正在与 Github Actions 合作进行端到端测试 我正在查看的设置是让一项作业检索要测试的 url 列表 而我的第二项作业使用该列表创建一个矩阵并测试所有这些 我的问题是 当我实际运行测试脚本时 必须从命令行完成 因为我使用
  • 在 Qt 中自动调整标签文本大小 - 奇怪的行为

    在 Qt 中 我有一个复合小部件 它由排列在 QBoxLayouts 内的多个 QLabels 组成 当小部件调整大小时 我希望标签文本缩放以填充标签区域 并且我已经在 resizeEvent 中实现了文本大小的调整 这可行 但似乎发生了某
  • 使用 Python 的 matplotlib 选择在屏幕上显示哪些图形以及将哪些图形保存到文件中

    我想用Python创建不同的图形matplotlib pyplot 然后 我想将其中一些保存到文件中 而另一些则应使用show 命令 然而 show 显示all创建的数字 我可以通过调用来避免这种情况close 创建我不想在屏幕上显示的绘图
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip
  • Statsmodels.formula.api OLS不显示截距的统计值

    我正在运行以下源代码 import statsmodels formula api as sm Add one column of ones for the intercept term X np append arr np ones 50

随机推荐

  • 返回选定的指定列

    我想从某个 Blob 表中仅选择几列 我有以下字段 Id RowVersion Size Signature Blob 我只想选择前四个 我这样做 gt 是一个错误的地方 public List
  • 从 http 而不是 https 加载图像时出现 403 错误

    我的问题类似于this one https stackoverflow com questions 22958559 403 when trying to download a remote image 但我只使用 html 和 javas
  • 打乱 SSE 寄存器中的偶数和奇数值

    我用 16 位值加载两个 SSE 128 位寄存器 这些值按以下顺序排列 src 0 E 3 O 3 E 2 O 2 E 1 O 1 E 0 O 0 src 1 E 7 O 7 E 6 O 6 E 5 O 5 E 4 O 4 我想要实现的是
  • 如何从 Xcode 的代码补全中排除某些术语? (自动完成、内容辅助)

    众所周知 Xcode 的代码补全功能非常棒 同时也是必要的 但有时它也可能很烦人 有什么方法可以修改可能的完成结果列表吗 例如 我一直在使用 CGSizeMake 但从来不想使用首先建议的 CGSizeMakeWithDictionaryR
  • 应按什么顺序释放 COM 对象和垃圾收集?

    关于释放 COM 对象和垃圾收集 有很多问题 但我找不到专门解决这个问题的东西 当释放 COM 对象 在本例中具体为 Excel Interop 时 我应该按什么顺序释放引用并调用垃圾回收 在某些地方 例如here https stacko
  • 如何将 jquery ui 可拖动可排序内容与自定义比例代码结合起来?

    我正在尝试将我的可拖动可排序内容与一些适合我的比例代码结合起来 我只是还没找到好的解决方案 看看那个 http jsfiddle net UXLAE 7 http jsfiddle net UXLAE 7 我已经注释掉了比例代码 以便您可以
  • Minio:存储桶策略与匿名/授权访问有何关系?

    Minio 有以下政策 每个桶 https github com minio minio java blob 6a4cf897df8c55cf4b46ed32617bf8bf41efe53c api src main java io min
  • 保存已创建的实时照片

    我有一些创建了 JPEG 和 MOV 文件的实时照片 现在我想将它们导入到应用程序中 该应用程序将允许用户将实时照片保存到他们的照片库中 我该怎么做呢 我调查过这个 https github com genadyo LivePhotoDem
  • 在 .NET 中使用线程本地存储的最佳实践是什么?

    我的应用程序中有一个要求 我认为可以通过使用线程本地存储来满足 但我想知道这是否是最好避免的事情之一 我读过一些关于这个主题的文章 http www dotnetcoders com web Articles ShowArticle asp
  • 在散景中动态添加小部件

    我想在散景中动态添加滤镜 即每次按下按钮时 都会附加一个新的滤镜 然而 添加新的小部件后 布局会被破坏 新的小部件会覆盖旧的小部件 而不是重新计算布局 代码示例 from bokeh layouts import row column fr
  • Unix:cat-ing 文件自身 - 为什么这会清空文件? [复制]

    这个问题在这里已经有答案了 有人可以向我解释一下为什么这段代码有效吗 即 file2 txt 是 file1 txt 按字母顺序排序的内容 cat file1 txt sort gt file2 txt 但是当我这样做时 file1 txt
  • Emacs .dir-locals.el - 设置键绑定

    我不确定这是否可行 但我想通过使用设置一些项目特定的键绑定 dir locals el 当然 dir locals el必须包含一个特殊的设置列表 所以我不能这样做 global set key 24 down move text down
  • 用平均值替换缺失值 - Spark Dataframe

    我有一个 Spark Dataframe 其中缺少一些值 我想通过用该列的平均值替换缺失值来执行简单的插补 我对 Spark 很陌生 所以我一直在努力实现这个逻辑 到目前为止 这是我设法做到的 a 要对单个列 假设是 A 列 执行此操作 这
  • 选择 ListboxItem 而不是 Index(突出显示,因为我会单击它)

    关于我的项目 我想通过索引突出显示搜索功能列表框项目 当前阶段 private void Menu Search Click object sender RoutedEventArgs e search person Interaction
  • ANSI C 中的超便携、小型复杂配置文件库?

    我正在寻找一个非常可移植 简约 小型的 ANSI C 语言库 没有外部依赖项 或很少 编译后大小小于 100K 我需要它来创建一个中等复杂的配置文件 并且它必须支持 Unicode 还有一些要求 可以使用 嵌入 静态链接到专有代码 在应得的
  • 过滤掉特定条件之前的行

    我有以下数据集 ID lt rep c A B times c 3 4 Departure lt c TRUE FALSE TRUE TRUE FALSE FALSE TRUE Date lt c Jan 1 Jan 2 Jan 3 Jan
  • 如何在 GNU Emacs 中逐行滚动?

    To put it simply I m trying to get scrolling in emacs like in vim and most other editors when I m for example two lines
  • FabricJS 文本框 - 某些字体的光标位置设置不正确

    在上图中 光标应该位于末尾 但由于某种原因 它被放置在最后一个字符之前 这只发生在某些字体上 我认为这与自定义字体的加载方式无关 该图像取自http fabricjs com loadfonts http fabricjs com load
  • 聚类和贝叶斯分类器 Matlab

    因此 我正处于下一步该做什么的十字路口 我开始学习一些机器学习算法并将其应用于复杂的数据集 现在我已经做到了 我从一开始的计划就是结合两种可能的分类器 试图建立一个多分类系统 但这就是我被困住的地方 我选择聚类算法 模糊 C 均值 在学习了
  • python yaml.dump 错误缩进

    我正在执行以下 python 代码 import yaml foo name foo my list foo test bar test2 foo test3 bar test4 hello world print yaml dump fo