pythonjson解析:我可以部分加载以加速吗?

2024-09-27 21:30:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python处理大型文本文件。文件的每一行都是一个完整的JSON消息,可能很长。我需要把每一行的信息插入数据库。这个信息非常简单:行的长度加上每个消息包含的唯一ID。所以每一行都有

{"field1":"val1", ..., "ID":"12345", ..., "fieldK":"valK"}

我需要从邮件中提取“12345”。在

现在我使用json.loads()加载整个字符串,然后找到ID并忽略其余部分。在

我的代码太慢了,我需要加快速度。我想看看是否有一种方法可以比像整个字符串一样加载更快地提取“ID”。一种选择是在字符串中搜索“ID”,然后处理:"12345"。但是,如果消息中有一个子字符串“ID”,那么它可能很脆弱。在

那么,有没有一种方法可以以某种方式部分加载行来查找ID,这种方法的健壮性与加载整个行的速度一样快?在


Tags: 文件方法字符串信息id数据库json消息
1条回答
网友
1楼 · 发布于 2024-09-27 21:30:32

我推荐两种方法:

如果您的输入非常大,可能是将其全部加载到内存中是浪费。单独加载/解析每一行可能会更快。在

如果上面的方法没有帮助,那么设计某种方法在文件中搜索正确的ID并不是一个坏主意。当您真正找到正确的ID:数字时,只需验证输入是否正确。所以你应该:

  1. 搜索(regex或其他)以查找所需的ID。在
  2. 对于匹配项,实际解析该行并确保其有效。如果它不是(比如说,ID:嵌入到某个字符串中),请删除它并继续搜索。在

由于(2)不合法的情况应该很少发生,所以验证不一定非常有效。在

相关问题 更多 >

    热门问题