Python 用JSON文件填充数据库,搜索值,仅返回匹配项。或者别的什么
首先,我在编程方面比较新;Python是我唯一熟悉使用的语言。第二,我把DB放在这个问题上,因为在搜索之后,这对我来说似乎是正确的,但如果DB更容易或更有效的话,我愿意不使用它 我必须处理的问题 我有一个包含75000个JSON文件的文件夹。它们都有相同的结构;下面是它们的外观示例(更多信息如下): 实际文件与上述文件不同的一种方式是,“纯文本”或“html”键将具有实际值,即文本(无论是纯文本还是html)。文本的长度可以从几句话到200多页不等。因此,JSON文件的大小从最小的907字节到2.1MB不等 我想做的事 基本上,我希望能够在所有文件中搜索纯文本或HTML字段中包含的单词或短语,并至少返回包含该单词或短语的文件列表。[理想情况下,我也会和他们一起做其他事情,但我可以在以后解决这些问题。我困惑的是从哪里开始。] 我想不出什么Python 用JSON文件填充数据库,搜索值,仅返回匹配项。或者别的什么,python,json,Python,Json,首先,我在编程方面比较新;Python是我唯一熟悉使用的语言。第二,我把DB放在这个问题上,因为在搜索之后,这对我来说似乎是正确的,但如果DB更容易或更有效的话,我愿意不使用它 我必须处理的问题 我有一个包含75000个JSON文件的文件夹。它们都有相同的结构;下面是它们的外观示例(更多信息如下): 实际文件与上述文件不同的一种方式是,“纯文本”或“html”键将具有实际值,即文本(无论是纯文本还是html)。文本的长度可以从几句话到200多页不等。因此,JSON文件的大小从最小的907字节到2
- Variable=“我要匹配的子字符串”
- List=[]#将保存包含变量的文件的ID
- 打开文件
- 将文件读到底
- 搜索文件[或仅搜索两个JSON键?]以查找变量
- 如果找到变量,请将“id”附加到列表中
- 关闭文件
- 移动到目录中的下一个
这是我遇到的实际代码部分。使用熊猫的想法,因为我不了解搜索引擎,有些复制自: 创建它将花费很长时间,但一旦完成,您就可以快速搜索和执行操作。例如,如果您想查找所有
id
,其中作者
不是空的:
id_list = temp.loc[temp['author'] != '']['id'].tolist()
如果您所有文件的总大小都很大,您可能希望查阅文档以更高效地存储内容或使用其他方法。使用某种工具比迭代文件更可取,因为简单地处理文件需要花费大量时间。请查看Elasticsearch。如果您想实际搜索任意文本中的单词和单词,请查看Elasticsearchrases,使用搜索引擎(Elasticsearch、Solr、Graylog、Splunk)不是一个需要索引才能高效搜索的文档存储库。我有一种预感,我的两种天真方法中的一种或两种都是错误的。当各种数据库的所有示例和教程等都使用键:值对中具有非常简单/短值的示例时,我很快就得出了这个结论。但这是最陡峭的部分,我认为nk是编程学习曲线的一部分。有无数种不同的工具来做工作,甚至不知道如何找到合适的工具。
dfs = [] # an empty list to store the data frames
for file in file_list:
data = pd.read_json(file, lines=True) # read data frame from json file
dfs.append(data) # append the data frame to the list
temp = pd.concat(dfs, ignore_index=True) # concatenate all the data frames in the list.
id_list = temp.loc[temp['author'] != '']['id'].tolist()