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)