创建列表时出现Python缩进错误

时间:2015-11-06 12:02:47

标签: python list python-3.x indentation

我收到缩进错误,我不明白为什么,我定义了两个dicts列表,第一个是好的,但第二个(遵循相同的格式)是抛出缩进错误。

列出一个(没问题):

itemData = [{'id': 11, 'model': 'm1', 'serial': 'ser123', 'location': 3, 'distance': 2, 'loc': 3},
            {'id': 12, 'model': 'm1', 'serial': 'ser456', 'location': 3, 'distance': 2, 'loc': 3}]

第二个清单的第一个版本:

itemData2 = [{'id': 11, 'model': 'm1', 'serial': 'ser123', 'location': 3, 'distance': 2, 'loc': 3},
             {'id': 12, 'model': 'm1', 'serial': 'ser456', 'location': 3, 'distance': 2, 'loc': 3},
             {'id': 13, 'model': 'm2', 'serial': 'ser678', 'location': 5, 'distance': 2, 'loc': 5}]

抛出:

Traceback (most recent call last):
  File "job_manager.py", line 1, in <module>
    from NewJM import JobMonitor
  File "C:\Users\Jonathan\Documents\Coding\Python\Logistics Code\NewJM.py", line 56
itemData2 = [{'id': 11, 'model': 'm1', 'serial': 'ser123', 'location': 3, 'distance': 2, 'loc': 3},
                                                                                                  ^
IndentationError: unindent does not match any outer indentation level

第二个版本的第二个列表:

itemData2 = [
    {'id': 11, 'model': 'm1', 'serial': 'ser123', 'location': 3, 'distance': 2, 'loc': 3},
    {'id': 12, 'model': 'm1', 'serial': 'ser456', 'location': 3, 'distance': 2, 'loc': 3},
    {'id': 13, 'model': 'm2', 'serial': 'ser678', 'location': 5, 'distance': 2, 'loc': 5}
]

抛出:

Traceback (most recent call last):
  File "job_manager.py", line 1, in <module>
    from NewJM import JobMonitor
  File "C:\Users\Jonathan\Documents\Coding\Python\Logistics Code\NewJM.py", line 56
itemData2 = [
            ^
IndentationError: unindent does not match any outer indentation level

我很困惑为什么会发生这种情况,特别是因为列表2的第一个版本是列表一的直接副本,只是添加了另一个字典。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

看起来你的代码中有空格混合标签。 您问题代码的简单复制粘贴可以正常工作。

答案 1 :(得分:0)

看起来在该行上发生了缩进,我添加了一些空格检查并添加了pyflakes作为额外的预防措施。在此期间,我会检查以确保缩进不会在该行之前或之后发生。

答案 2 :(得分:0)

阅读这篇文章:

IndentationError: unindent does not match any outer indentation level

(以及上述评论)

让我调查了itemData2列表周围的空白,

使用ctrl + /命令对列表进行评论我发现了这个:

    #   itemData2 = [
    #     {'id': 11, 'model': 'm1', 'serial': 'ser123', 'location': 3, 'distance': 2, 'loc': 3},
          # {'id': 12, 'model': 'm1', 'serial': 'ser456', 'location': 3, 'distance': 2, 'loc': 3},
    #     {'id': 13, 'model': 'm2', 'serial': 'ser678', 'location': 5, 'distance': 2, 'loc': 5}
 #   ]

应该是这样的:

    # itemData2 = [
    #   {'id': 11, 'model': 'm1', 'serial': 'ser123', 'location': 3, 'distance': 2, 'loc': 3},
    #   {'id': 12, 'model': 'm1', 'serial': 'ser456', 'location': 3, 'distance': 2, 'loc': 3},
    #   {'id': 13, 'model': 'm2', 'serial': 'ser678', 'location': 5, 'distance': 2, 'loc': 5}
    # ]

它像上面提到的那样搞乱了标签和空格