请问如何使用“ json”模块一次读取一个JSON对象?

我有一个千兆字节的JSON文件。该文件由每个不超过几千个字符的JSON对象组成,但是记录之间没有换行符。


使用Python 3和json模块,如何一次从文件读取一个JSON对象到内存?


数据在纯文本文件中。这是类似记录的示例。实际记录包含许多嵌套的字典和列表。


以可读格式记录:


{

    "results": {

      "__metadata": {

        "type": "DataServiceProviderDemo.Address"

      },

      "Street": "NE 228th",

      "City": "Sammamish",

      "State": "WA",

      "ZipCode": "98074",

      "Country": "USA"

    }

  }

}

实际格式。新记录一个接一个地开始,没有任何中断。


{"results": { "__metadata": {"type": "DataServiceProviderDemo.Address"},"Street": "NE 228th","City": "Sammamish","State": "WA","ZipCode": "98074","Country": "USA" } } }{"results": { "__metadata": {"type": "DataServiceProviderDemo.Address"},"Street": "NE 228th","City": "Sammamish","State": "WA","ZipCode": "98074","Country": "USA" } } }{"results": { "__metadata": {"type": "DataServiceProviderDemo.Address"},"Street": "NE 228th","City": "Sammamish","State": "WA","ZipCode": "98074","Country": "USA" } } }


呼如林
浏览 307回答 3
3回答

茅侃侃

如果您的JSON文档包含一个对象列表,并且您想一次读取一个对象,则可以为该作业使用迭代JSON解析器ijson。仅当需要解码下一个对象时,它才会从文件中读取更多内容。请注意,您应该将它与YAJL库一起使用,否则您可能看不到任何性能提高。话虽如此,除非您的文件很大,否则将其完全读取到内存中,然后使用普通的JSON模块进行解析可能仍然是最好的选择。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python