【发布时间】:2021-11-03 20:08:09
【问题描述】:
我有多个文本文件,里面有这个(具有不同的值):
{"abandon": {"R1F2V0CQAYJOZZ": 2, "R3NUFWQ9SPGVJO": 1}, "abduct": {"R1F2V0CQAYJOZZ": 1, "R3376OQSHCTV1A": 1, "R14BW4EQZNVKKG": 1, "R233CMES8RCOCU": 1},
如果我在线格式化它会变成这样:
"abandon":{
"R1F2V0CQAYJOZZ":2,
"R3NUFWQ9SPGVJO":1
},
"abduct":{
"R1F2V0CQAYJOZZ":1,
"R3376OQSHCTV1A":1,
"R14BW4EQZNVKKG":1,
"R233CMES8RCOCU":1
},
这个 JSON 的意思是:
"word":{
"Document name":"value"
},
但是在不同的文件中有重复的单词。 我想做的是: 读取所有文件并将所有内容存储在一个字典中,但是:
- 如果字典中存在“单词”,则检查“文档”是否存在;
- 如果“文档存在”,则增加“值”,否则将文档放在那里并且“值 = 1”
- 如果“word”不存在,则存储“word”、“document”和“value = 1”
编辑:
想象一下这两个文件:
File1.txt = {"abandon": {"doc1": 2, "doc2": 1}, "abduct": {"doc1": 1, "doc2": 1, "doc8": 1},
File1.txt = {"abandon": {"doc1": 1, "doc3": 1}, "abduct": {"doc5": 1, "doc8": 1},
我希望我的字典像这样结束:
{"abandon": {"doc1": 3, "doc2": 1, "doc3": 1}, "abduct": {"doc1": 1, "doc2": 1, "doc5": 1, "doc8": 2},
编辑2: 也可以是嵌套列表
【问题讨论】:
-
您能否再包含一个文件样本以及这两个文件合并后的预期输出?
-
已编辑,现在更清楚了吗?这只是一个有2个文件的例子,有多个文件
-
您可以使用 json 库将输入转换为字典。要读取所有文件,您可以使用 os.listdir(folder) 它将为您提供指定文件夹中的所有文件和文件夹名称。
-
@ZShadow01 但我不想为每个文件创建一个字典,我希望所有文件都在同一个字典中
-
如果“doc1”:2 和“doc1:3”在两个文件中,结果是什么?你说“增量”,但你真的想要合并字典中的“doc1”:5吗?