gpt4 book ai didi

python - 搜索数百万个 JSON 文件的最佳方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 12:21:31 24 4
gpt4 key购买 nike

我最近开始学习 Python 编程,并致力于创建数据库。

我已经解决了从源文件中提取所有这些文件的问题,因此它们都在我计算机上的一个目录中。

所有这些文件的结构都相同,我想做的是搜索这些多维词典并找到一组特定键的值。

这些 json 文件的结构都相似,

{
"userid": 34535367,
"result": {
"list": [
{
"name": 264,
"age": 64,
"id": 456345345
},
{
"name": 263,
"age": 42,
"id": 364563463456
}
]
}

在我的例子中,我想从我的数百万个 JSON 文件中搜索“名称”键并返回相关数据(质量、ID 和原始用户 ID)以获取数千个名称。

基本上,我在这方面还很陌生,而且我所掌握的一点点编程知识都在 Python 方面。我很高兴开始学习我需要的任何东西,但我不确定该往哪个方向走。

最佳答案

如果您的目标是创建一个数据库,那么您应该了解数据库的工作原理并解决您现在正在尝试解决的相同问题:)

NoSQL 数据库(如 mangodb)也可以处理 json 文档,并且很可能实现了一整套工具来搜索和过滤文档。

现在回答您的问题,除非您进行一些预处理,这意味着您存储有关数据的不同信息(称为元数据),否则没有快速的方法可以做到这一点。这是一个很大的主题,我没有足够的专业知识来给你所有的答案,但我可以给你一个简单的提示:使用索引。

索引是一个排序的键/值映射,其中对于每个值,我们存储包含该值的文档(或文件 + Json 文档的位置)。例如,name 属性的索引如下所示:

{
263: ('jsonfile10.json', '0')
264: ('jsonfile10.json', '30'),
# The json document can be found on the jsonfile10.json file on line 30
}

通过为查询次数最多的值保留一个索引,您可以将线性时间搜索转变为对数时间搜索,更不用说插入新文档要快得多了。在您的情况下,您似乎只需要名称字段上的索引。

创建/更新索引是在您插入、更新或删除文档时完成的。使用平衡二叉树可以加速索引的更新。

关于python - 搜索数百万个 JSON 文件的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19712013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com