我尝试重复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)