python 中行数错误的循环
Loop with wrong number of lines in python
我已经创建了一个脚本,但脚本上的循环没有得到遵守。出于某种原因,它应该 return 多行(只有 3 行是正确的 return)。
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)
我觉得你很好。但是在循环完成后尝试打印; unindent 打印一次。
您的代码是正确的。您只需取消缩进 print(list)
即可。目前,print
语句在 for
循环内。
固定代码如下:
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)
我已经创建了一个脚本,但脚本上的循环没有得到遵守。出于某种原因,它应该 return 多行(只有 3 行是正确的 return)。
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)
我觉得你很好。但是在循环完成后尝试打印; unindent 打印一次。
您的代码是正确的。您只需取消缩进 print(list)
即可。目前,print
语句在 for
循环内。
固定代码如下:
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)