我正在将关键字列表搜索到特定目录中的所有 json 文件中,然后将该特定对象存储到另一个 json 文件中
import json
import os
with open("FoundKeyword/keywords.txt", "r") as file:
keywords = [line.strip() for line in file.readlines()]
def SearchKeyword():
directory_path = "telegram"
matching_json_objects = []
# Iterate through all files in the directory
for root, dirs, files in os.walk(directory_path):
for file_name in files:
file_path = os.path.join(root, file_name)
try:
with open(file_path, 'r') as file:
data = json.load(file)
for keyword in keywords:
for obj in data:
if keyword in json.dumps(obj):
matching_json_objects.append(obj)
except Exception as e:
print(f"Error reading file '{file_path}': {str(e)}")
with open("FoundKeyword/FoundKeywords.json", "w") as w:
json.dump(matching_json_objects, w, indent=4)
if __name__=='__main__':
SearchKeyword()
import json
import os
# Read keywords from a file
with open("FoundKeyword/keywords.txt", "r") as file:
keywords = [line.strip() for line in file.readlines()]
def search_keywords_in_json_files(directory_path, keywords):
matching_json_objects = []
for root, dirs, files in os.walk(directory_path):
for file_name in files:
file_path = os.path.join(root, file_name)
try:
with open(file_path, 'r') as file:
data = json.load(file)
for obj in data:
for keyword in keywords:
if keyword in json.dumps(obj):
matching_json_objects.append(obj)
except Exception as e:
print(f"Error reading file '{file_path}': {str(e)}")
with open("FoundKeyword/FoundKeywords.json", "w") as w:
json.dump(matching_json_objects, w, indent=4)
if __name__ == '__main__':
directory_path = "telegram"
search_keywords_in_json_files(directory_path, keywords)
以下是改进:
我将搜索逻辑封装到一个单独的函数 search_keywords_in_json_files 中,以实现更好的组织和可重用性。
search_keywords_in_json_files 函数现在接受directory_path 和 keywords 作为参数,使其更加灵活。
我重命名了该函数以遵循 Python 命名约定 (snake_case)。
代码现在已通过缩进正确组织,使其更具可读性。
此修改后的代码应该可以有效地完成在 JSON 文件中搜索关键字并将匹配对象存储在另一个 JSON 文件中的任务。