我有一个很大的yaml文件,其中包含一些无用的数据。使用yaml.load()加载此文件时,内存消耗超过了我们计算机的物理限制。我看不懂我是否只能读取需要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对象,以及从事件流期望的结构。

关于python - 如何从大型Yaml文件中获取部分数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49723620/

10-16 18:46