jsonutils -JSON交互

jsonutils 旨在为使用JSON提供各种帮助。目前,它专注于提供一种可靠、直观的使用 JSON Lines -格式化的文件。

class boltons.jsonutils.JSONLIterator(file_obj, ignore_errors=False, reverse=False, rel_seek=None)[源代码]

这个 JSONLIterator 用于循环访问存储在 JSON Lines format (每行一个对象)。

最值得注意的是,它具有从文件底部高效读取的能力,这使得它对于在简单的仅附加的JSONL用例中读取非常有效。它还能够从文件中的任何位置开始,并忽略损坏的行。

参数:
  • file_obj (file) -- 打开的文件对象。

  • ignore_errors (bool) -- 是否跳过在反序列化时引发错误的行 (json.loads() )。

  • reverse (bool) -- 控制迭代的方向。默认为 False 。如果设置为 Truerel_seek 未设置,则在迭代开始之前查找到文件的末尾。

  • rel_seek (float) -- 用于预估迭代的开始位置。将文件开始设置为0.0,将结束设置为1.0,然后设置为介于两者之间的任何值。

property cur_byte_pos

一个属性,表示迭代器正在读取文件中的什么位置。

next()[源代码]

会产生一个 dict 已加载 json.loads() 将文件对象前移一行。加薪 StopIteration 在到达文件的末尾(或开始,如果 reverse 被设置为 True

boltons.jsonutils.reverse_iter_lines(file_obj, blocksize=4096, preseek=True, encoding=None)[源代码]

以相反的顺序返回文件对象各行的迭代器,即最后一行在前,第一行在最后。使用 file.seek() 方法文件对象,并经测试兼容 file 对象,以及 StringIO.StringIO

参数:
  • file_obj (file) -- 打开的文件对象。请注意 reverse_iter_lines 从文件读取和其他函数不应在传递后与文件对象进行静态交互。文件可以以字节或文本模式打开。

  • blocksize (int) -- 要传递到的块大小 file.read() 。警告:保持2的较大倍数,默认为4096。

  • preseek (bool) -- 告知函数是否自动查找到文件末尾。默认为 Truepreseek=False 在文件光标已经位于文件末尾或中间以生成相对反转行的情况下非常有用。