目录下的json格式文件,怎么合并去重,和转txt?

文件是复杂的存储数据结构,类似与gpt导出的json格式

文件   
/storage/emulated/0/文件/json/

代码执行完存储位置
/storage/emulated/0/文件/

读取文件夹下的所有json文本,用set去重,遍历写入文本。


问题点:合并json和存储成TXT

  1. 合并json
import os
folder_path = r'/storage/emulated/0/文件/json'
data = dict()
for json_file in os.walk(folder_path):
#打开json文件
    with open(json_file , 'r', encoding='utf-8') as fw:
    injson = json.load(fw)
    #  合并json
    data.update(injson)
print(data)

2.存储TXT

# 数据
with open('/storage/emulated/0/文件/combine.txt','w') as f:
   f.write(data)

要合并和去重目录下的JSON格式文件,并将其转换为TXT文件,可以使用以下Python代码:

import os
import json

# 定义录路径
directory = '/storage/emulated/0/文件/json/'

# 创建一个空列表来存储所有的JSON数据
merged_data = []

# 遍历目录下的所有文件
for filename in os.listdir(directory):
    if filename.endswith('.json'):
        file_path = os.path.join(directory, filename)
        
        # 读取JSON文件
        with open(file_path, 'r') as file:
            data = json.load(file)
            
            # 将数据添加到合并列表中
            merged_data.append(data)

# 去重合并的数据
unique_data = [dict(t) for t in {tuple(d.items()) for d in merged_data}]

# 将数据转换为文本格式
output_text = '\n'.join(json.dumps(data) for data in unique_data)

# 定义输出文件路径
output_file = '/storage/emulated/0/文件/output.txt'

# 将文本写入输出文件
with open(output_file, 'w') as file:
    file.write(output_text)

print('合并和去重完成,并已将结果保存到', output_file)

请确保将/storage/emulated/0/文件/json/替换为实际的目录路径,并将/storage/emulated/0/文件/output.txt替换您想要保存输出的文件路径。

这段代码将历指定目录的所有JSON文件将它们合并到一个列表中。然后,它会对合并的数据进行去,确保每个条目都是唯一。最后,它将合并且去重后的数据转换为文本格式,并将结果保存到指定的TXT文件中。

不知道你这个问题是否已经解决, 如果还没有解决的话:

本文主要介绍的是在深度学习中一些常见文件的读取方法。
为了防止自己遗忘,所以记录一下,后期也会不断补充。

  • 以下回答来自chatgpt:

    根据提供的参考资料, 你可以按照以下步骤来实现目标:

    1. 获取目录下的所有json文件路径 遍历目录,并将每个文件的路径存储在一个列表中。可以使用os模块的相关函数来实现。

    ```python import os

    directory = '/path/to/json/files' json_files = []

    for file in os.listdir(directory): if file.endswith('.json'): json_files.append(os.path.join(directory, file)) ```

    1. 合并json文件内容 创建一个空的字典或列表,然后逐个读取每个json文件的内容,将其合并到字典或列表中。

    ```python merged_data = {}

    for file in json_files: with open(file, 'r') as fp: json_data = json.load(fp) # 将json_data合并到merged_data中 # 根据json文件的数据结构,将重复项去除 # 例如,如果json_data是一个列表,可以使用extend方法合并,然后使用set将重复项去除 # 例如,如果json_data是一个字典,可以使用update方法合并,然后根据键的唯一性去除重复项 ```

    1. 将合并后的结果转换为txt文件 使用Python的内置函数来将合并后的字典或列表转换为文本格式的字符串,并将其写入txt文件。

    ```python with open('/path/to/output.txt', 'w') as fp: # 根据合并后的数据类型来转换为文本格式的字符串 # 例如,如果merged_data是一个字典,可以使用json.dumps方法将其转换为文本格式的字符串 # 例如,如果merged_data是一个列表,可以使用join方法将其转换为文本格式的字符串,每个元素占一行

       fp.write(text_data)
    

    ```

    注意:根据实际情况,可能需要对合并后的数据进行一些处理和格式化,以适应转换为txt文件。具体的处理和格式化方法取决于合并后数据的具体结构和需求。

    如果以上步骤无法满足你的需求,或者具体的json文件结构和数据格式需要进一步了解,可以提供更详细的信息,以便给出更准确和具体的解决方案。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^