【发布时间】:2021-03-04 10:54:31
【问题描述】:
我创建了一个脚本,但脚本上的循环没有得到尊重。出于某种原因,它返回了更多应该返回的行(只有 3 行才是正确的返回)。
sample.txt 文件内容如下:
Server1
Server2
Server3
在我的代码中,它应该只使用 sample.txt 中的 3 个服务器进行附加,但是,我得到的输出是:
[{'ApplicationName': 'App01', 'ServerList': ['server1'], 'StartDate': '2020-12-12 12:00:00', 'EndDate': '2020-12-12 13:00:00', 'SourceTool': 'Moon'}]
[{'ApplicationName': 'App01', 'ServerList': ['server1'], 'StartDate': '2020-12-12 12:00:00', 'EndDate': '2020-12-12 13:00:00', 'SourceTool': 'Moon'}, {'ApplicationName': 'App01', 'ServerList': ['server2'], 'StartDate': '2020-12-12 12:00:00', 'EndDate': '2020-12-12 13:00:00', 'SourceTool': 'Moon'}]
[{'ApplicationName': 'App01', 'ServerList': ['server1'], 'StartDate': '2020-12-12 12:00:00', 'EndDate': '2020-12-12 13:00:00', 'SourceTool': 'Moon'}, {'ApplicationName': 'App01', 'ServerList': ['server2'], 'StartDate': '2020-12-12 12:00:00', 'EndDate': '2020-12-12 13:00:00', 'SourceTool': 'Moon'}, {'ApplicationName': 'App01', 'ServerList': ['server3'], 'StartDate': '2020-12-12 12:00:00', 'EndDate': '2020-12-12 13:00:00', 'SourceTool': 'Moon'}]
以下是正确的输出方式:
[{'ApplicationName': 'App01', 'ServerList': ['server1'], 'StartDate': '2020-12-12 12:00:00', 'EndDate': '2020-12-12 13:00:00', 'SourceTool': 'Moon'},
{'ApplicationName': 'App01', 'ServerList': ['server2'], 'StartDate': '2020-12-12 12:00:00', 'EndDate': '2020-12-12 13:00:00', 'SourceTool': 'Moon'},
{'ApplicationName': 'App01', 'ServerList': ['server3'], 'StartDate': '2020-12-12 12:00:00', 'EndDate': '2020-12-12 13:00:00', 'SourceTool': 'Moon'}]
我做错了什么?下面是我正在使用的脚本:
list = []
with open('sample.txt') as f:
lines = [line.rstrip() for line in f]
for x in lines:
data = {
"ApplicationName" : 'App01',
"ServerList" : [x],
"StartDate" : '2020-12-12 12:00:00',
"EndDate" : '2020-12-12 13:00:00',
"SourceTool" : 'Moon'
}
list.append(data)
print(list)
【问题讨论】:
-
这是因为您的
print(list)语句在for循环内。如果你将它与 for 对齐,它应该会正确显示 -
我认为您的代码没有任何问题。您只需要在 for 循环之外打印列表。
标签: python python-3.x loops append