2024-06-26 01:39:41 发布
网友
我有一个大的yaml文件包含一些无用的数据。使用时山药负荷()要加载此文件,内存消耗超出了计算机的物理限制。我看不懂。我是否只能读取python dict所需的部分数据?有没有一些库或代码可以解决这个问题?在
使用PyYaml,可以执行以下操作:
with open("file.yaml", 'r') as handle: for event in yaml.parse(handle): # handle the event here
这将逐个事件地处理YAML文件,而不是将其全部加载到数据结构中。当然,您现在需要从事件流中手动解析结构,但这允许您进一步处理部分数据。在
您可以查看PyYaml的Composer implementation,看看它是如何从事件中构造Python对象的,以及它期望从事件流中得到什么结构。在
这是另一种我发现在控制YAML输出格式时很有用的技术。您可以使用“-”分隔符将数据拆分为单独的YAML文档,而不是将数据作为一个单独的结构。例如,而不是
- foo: 1 bar: 2 - foo: 2 bar: 10
你可以这样写:
然后使用以下python代码进行解析:
with open("really_big_file.yaml") as f: for item in yaml.load_all(f): print(item)
使用PyYaml,可以执行以下操作:
这将逐个事件地处理YAML文件,而不是将其全部加载到数据结构中。当然,您现在需要从事件流中手动解析结构,但这允许您进一步处理部分数据。在
您可以查看PyYaml的Composer implementation,看看它是如何从事件中构造Python对象的,以及它期望从事件流中得到什么结构。在
这是另一种我发现在控制YAML输出格式时很有用的技术。您可以使用“-”分隔符将数据拆分为单独的YAML文档,而不是将数据作为一个单独的结构。例如,而不是
你可以这样写:
^{pr2}$然后使用以下python代码进行解析:
相关问题 更多 >
编程相关推荐