如何在 Python 中处理 YAML 流

2024-02-02

我有一个命令行应用程序,它以以下形式连续输出 YAML 数据:



- col0: datum0
  col1: datum1
  col2: datum2
- col0: datum0
  col1: datum1
  col2: datum2
...
  

它永远这样做。我想编写一个Python脚本来连续读取这些记录。

PyYAML 库似乎最擅长获取完全加载的字符串并将其解释为完整的 YAML 文档。有没有办法将 PyYAML 置于“流”模式?

或者是我自己将数据分块并将其一点一点输入 PyYAML 的唯一选择?


这是我最终使用的,因为似乎没有内置方法来完成我想要的事情。此函数应该足够通用,以便它可以读取 YAML 流并在遇到顶级对象时返回它们。

def streamInYAML(stream):
    y = stream.readline()
    cont = 1
    while cont:
        l = stream.readline()
        if len(l) == 0:
            cont = 0
        else:
            if l.startswith(' '):
                y = y + l
            else:
                yield yaml.load(y)
                y = l

有人能做得更好吗?

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

如何在 Python 中处理 YAML 流 的相关文章

  • Django 的内联管理:一个“预填充”字段

    我正在开发我的第一个 Django 项目 我希望用户能够在管理中创建自定义表单 并向其中添加字段当他或她需要它们时 为此 我在我的项目中添加了一个可重用的应用程序 可在 github 上找到 https github com stephen
  • 与区域指示符字符类匹配的 python 正则表达式

    我在 Mac 上使用 python 2 7 10 表情符号中的标志由一对表示区域指示符号 https en wikipedia org wiki Regional Indicator Symbol 我想编写一个 python 正则表达式来在
  • 使用特定的类/函数预加载 Jupyter Notebook

    我想预加载一个笔记本 其中包含我在另一个文件中定义的特定类 函数 更具体地说 我想用 python 来做到这一点 比如加载一个配置文件 包含所有相关的类 函数 目前 我正在使用 python 生成笔记本并在服务器上自动启动它们 因为不同的
  • Python 中的哈希映射

    我想用Python实现HashMap 我想请求用户输入 根据他的输入 我从 HashMap 中检索一些信息 如果用户输入HashMap的某个键 我想检索相应的值 如何在 Python 中实现此功能 HashMap
  • 远程 Informix 11.5 命令行客户端

    Informix 11 5 是否附带了与 SQL Server 的 SQLCMD 类似的命令行工具 如果是 如何连接到远程服务器并使用它执行常规 SELECT INSERT UPDATE 查询 正如 Michal Niklas 所说 IBM
  • 将html数据解析成python列表进行操作

    我正在尝试读取 html 网站并提取其数据 例如 我想查看公司过去 5 年的 EPS 每股收益 基本上 我可以读入它 并且可以使用 BeautifulSoup 或 html2text 创建一个巨大的文本块 然后我想搜索该文件 我一直在使用
  • 处理 Python 行为测试框架中的异常

    我一直在考虑从鼻子转向行为测试 摩卡 柴等已经宠坏了我 到目前为止一切都很好 但除了以下之外 我似乎无法找出任何测试异常的方法 then It throws a KeyError exception def step impl contex
  • 跟踪 pypi 依赖项 - 谁在使用我的包

    无论如何 是否可以通过 pip 或 PyPi 来识别哪些项目 在 Pypi 上发布 可能正在使用我的包 也在 PyPi 上发布 我想确定每个包的用户群以及可能尝试积极与他们互动 预先感谢您的任何答案 即使我想做的事情是不可能的 这实际上是不
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • 使用Python请求登录Google帐户

    在多个登录页面上 需要谷歌登录才能继续 我想用requestspython 中的库以便让我自己登录 通常这很容易使用requests库 但是我无法让它工作 我不确定这是否是由于 Google 做出的一些限制 也许我需要使用他们的 API 或
  • 您可以格式化 pandas 整数以进行显示,例如浮点数的“pd.options.display.float_format”?

    我见过this https stackoverflow com questions 18404946 py pandas formatdataframe and this https stackoverflow com questions
  • Pandas Merge (pd.merge) 如何设置索引和连接

    我有两个 pandas 数据框 dfLeft 和 dfRight 以日期作为索引 dfLeft cusip factorL date 2012 01 03 XXXX 4 5 2012 01 03 YYYY 6 2 2012 01 04 XX
  • Python 2:SMTPServerDisconnected:连接意外关闭

    我在用 Python 发送电子邮件时遇到一个小问题 me my email address you recipient s email address me email protected cdn cgi l email protectio
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • javascript 是否有等效的 __repr__ ?

    我最接近Python的东西repr这是 function User name password this name name this password password User prototype toString function r
  • 如何断言 Unittest 上的可迭代对象不为空?

    向服务提交查询后 我会收到一本字典或一个列表 我想确保它不为空 我使用Python 2 7 我很惊讶没有任何assertEmpty方法为unittest TestCase类实例 现有的替代方案看起来并不正确 self assertTrue
  • 如何在 pygtk 中创建新信号

    我创建了一个 python 对象 但我想在它上面发送信号 我让它继承自 gobject GObject 但似乎没有任何方法可以在我的对象上创建新信号 您还可以在类定义中定义信号 class MyGObjectClass gobject GO
  • 使用for循环时如何获取前一个元素? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 循环内的上一个和下一个值 https stackoverflow com questions 1011938 python previous and next values inside
  • 使用随机放置的 NaN 创建示例 numpy 数组

    出于测试目的 我想创建一个M by Nnumpy 数组与c随机放置的 NaN import numpy as np M 10 N 5 c 15 A np random randn M N A mask np nan 我在创建时遇到问题mas

随机推荐

  • 添加滑动手势以打开 SplitView 窗格

    我正在尝试向 UWP 的 SplitView 控件 又名 汉堡菜单 添加滑动手势 类似于 Pivot 控件的左 右滑动 如何设置手势来改变它的显示模式 在 iOS 8 及更高版本中 我可以使用 UISplitViewController 并
  • 在 Asp.net MVC 4 中指定区域属性时,ActionLink 和 Url.Action 目标不同的位置

    在 LoggedInUser cshtml 位于应用程序根目录的 Views Shared 文件夹中 视图中 我想调用 AC 控制器的 Logout 方法 我这里有两个选择 使用 ActionLink Html ActionLink Log
  • OpenGL 中的矩阵堆栈已弃用?

    我刚刚读过这个 OpenGL提供了支持 用于使用标准矩阵堆栈管理坐标变换和投影 GL MODELVIEW 和 GL PROJECTION 然而 在核心 OpenGL 4 0 中 所有功能 支持矩阵堆栈已被移除 因此 我们有责任提供自己的 支
  • 克隆 git 存储库(深入)

    如何克隆存储库 使用libgit2 https github com libgit2 libgit2 我想做的正是git clone但与libgit2 我可能要问的是git clone确实很深入 这就是我到目前为止正在做的事情 初始化一个仓
  • 实体框架 - DbContextTransaction.Rollback() 中的问题

    我使用连接数据库Entity Framework 我实现了一个联系人存储库来保存联系信息 示例存储库 在上述类文件中 我声明了一个static property用于处理DBEntities i e BLabsEntities 即 Conte
  • 删除 Rails 中的关联模型

    您好 我想知道是否可以删除 Rails 中的关联 嗯 我有类似的东西 class Home lt ActiveRecord Base include settings end 在 settings rb 上我有类似的东西 module Se
  • macOS下如何查找串口的父USB设备?

    以下是我尝试枚举 Mac 上找到的所有串行端口 并遍历设备节点树以查找 USB 串行适配器的父 USB 设备的方法 import
  • 如何制作新的数组嵌套排序映射?

    我有一个数据块 如下所示 var list id 1 title thing1 week 1 day 1 id 2 title thing2 week 1 day 1 id 3 title thing3 week 1 day 2 id 4
  • 观察属性崩溃 Instruments(泄漏配置文件)Xcode 9.3 (Swift 4.1)

    当我运行以下代码 一个简化的示例 为了演示崩溃而创建 时 当我选择 运行 时 它会按预期执行 两条 os log 消息都在控制台中打印 但是 当我从内存调试导航器中的仪器中打开它时 通过按 重新启动 它崩溃了 仅在控制台中打印第一个 os
  • 如何在现有数组中追加数据而不覆盖整个数组[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 这是我的代
  • 在 screen_on 上更新 Android 小部件的最佳方法是什么? Android Oreo(API 26)是否支持

    我创建了一个小部件 它运行得很好 然后根据 Google Play 开发者控制台的要求 我将 targetSDK 从 23 更改为 26 切换到 Android SDK 26 后 我的应用程序小部件不再在 screen on User pr
  • “您已经拥有该商品”但 getPurchases 为空[重复]

    这个问题在这里已经有答案了 我购买了一个订阅 not a Managed Product or Unmanaged Product 昨天为了测试 我给自己退款了 然后取消了订阅 退款和取消后 当我打电话时 m billingService
  • Node.js mongodb 中的 db.getUser

    与 MongoDB shell 命令等效的命令是什么db getUser and db getUsers在 Node js MongoDB 2 x 中 我在驱动程序文档中看到db addUser and db removeUser存在但没有
  • WordPress webp 图像预览

    我已经使用以下代码更新了 wordpress 以允许 webp 上传 function webp upload mimes existing mimes existing mimes webp image webp return exist
  • 测试期间随机抛出“InvalidCastException”

    在 WatiN UI 测试中 我遇到一个问题 在运行测试时 错误有时会抛出以下错误 InvalidCastException 未由用户代码处理 无法将类型为 mshtml HTMLDocumentClass 的 COM 对象转换为接口类型
  • 在Java Servlet中读取Ajax发送的JQuery数据

    这是我的 Ajax 代码 var myJSONObject bindings ircEvent PRIVMSG method newURI regex http ajax url ships data myJSONObject succes
  • 如何在 Visual Studio 2012 中加载符号

    当我调试我的应用程序时 我看到消息 找不到或打开 PDB 文件 我似乎记得能够在调试应用程序时指定 PDB 文件的位置 我怎样才能做到这一点 我正在使用 Visual Studio 2012 添加符号位置 打开设置 工具 gt 选项 gt
  • 如何修复拥挤的 tmap 图例中的垂直空间 [R]

    如何修复 tmap 图例中的垂直空间问题 如链接的基本 R 示例中所示的问题 图例中的垂直空间 https stackoverflow com questions 38332355 vertical spaces in legend y i
  • 从下拉框中获取文本

    这将获取我的下拉菜单中选择的任何值 document getElementById newSkill value 然而 我无法找出下拉菜单当前显示的文本要查找的属性 我尝试了 文本 然后查看了W3学校 http w3schools com
  • 如何在 Python 中处理 YAML 流

    我有一个命令行应用程序 它以以下形式连续输出 YAML 数据 col0 datum0 col1 datum1 col2 datum2 col0 datum0 col1 datum1 col2 datum2 它永远这样做 我想编写一个Pyth