【问题标题】:Read only first line of gzip JSON file只读 gzip JSON 文件的第一行
【发布时间】:2019-09-05 21:14:52
【问题描述】:

虽然这里已经发布了很多关于如何读取文件第一行的代码,但我无法弄清楚如何在 Python 中只读取压缩后的 JSON 文件的第一行。

这是我当前的工作示例。但是,它包含一个讨厌的break 语句,并且循环似乎完全没有必要:

for line in gzip.open(file, 'rb'):
    one_line = json.loads(line)
    print(one_line)
    break

是否有一种解决方案可以保留json.loads() 命令(或正确读取 JSON 文件的类似命令),同时仅读取 gzip 压缩的 JSON 文件的第一行?

【问题讨论】:

  • 如果 json 越过更多行,只读取一行将以无效的 json 结尾。你已经有line中的第一行了
  • 文件的每一行都是一个独立的 json 块吗?

标签: python json gzip


【解决方案1】:

调用readline() 而不是for 循环。

with gzip.open(file, 'rb') as f:
    line = f.readline()
one_line = json.loads(line)
print(one_line)

【讨论】:

    猜你喜欢
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多