For循环重复获取更大的json数据,在Python中没有重复



我尝试重复10次json文件,其中添加了1~10个元素名为" processguide "在每次迭代中,通过以下代码

import json
file = open("D:/Test/test.json",'r',encoding='utf-8')
papers = []
for line in file.readlines():
dic = json.loads(line)
papers.append(dic)

result_int = papers
string_name = list(map(str, range(1,10)))

for element in string_name:
result = []
result = result_int
processlist = []
for i in range(len(result)):
(result[i])['Event']['EventData']['ProcessGuid'] = str((result[i])['Event']['EventData']['ProcessGuid'])+element

with open("D:/Test/process_"+str(element)+".json", 'w', encoding ='utf8') as json_file:
json.dump(result, json_file, ensure_ascii = False) 

我认为每次重复的数据结果将是这样的(假设ProcessGuid的原始数据元素是Hello)

1st repeat : ProcessGuid = Hello1
2nd repeat : ProcessGuid = Hello2
3rd repeat : ProcessGuid = Hello3
...
10th repeat : ProcessGuid = Hello10

但是结果如下

1st repeat : ProcessGuid = Hello1
2nd repeat : ProcessGuid = Hello12
3rd repeat : ProcessGuid = Hello123
...
10th repeat : ProcessGuid = Hello12345678910

我哪里错了?谢谢。

对于每个element,代码附加到相同的值。如果您只想将每个element附加到原始值一次,您可以先保存原始值:

base_values = [str(paper['Event']['EventData']['ProcessGuid']) for paper in papers]
for element in string_name:
for i, paper in enumerate(papers):
paper['Event']['EventData']['ProcessGuid'] = base_values[i] + element

with open("D:/Test/process_" + str(element) + ".json", 'w', encoding ='utf8') as json_file:
json.dump(papers, json_file, ensure_ascii = False) 

你不停地重写result_int

如何克隆列表,使其在赋值后不会发生意外更改?

改变:

result = list(result_int)

最新更新