Python数据结构中可能存在的错误

时间:2015-02-17 04:30:09

标签: python python-2.7 dictionary

Python删除嵌套字典的内容似乎存在问题。这是second_body的数据结构:

body = {
    'Violations' : [
                     {'foo': 7,
                      'bar': 8,
                      'baz': 9},
                     {'tez': 2,
                      'rez': 4,
                      'sez': 6}
                   ]
}

给出正文的数据结构。然后我将它嵌套在一个最终字典中(与'outdict'相关联)。

body = second_body(body, findme)

        if g_row == 1:
            print "another check: %d " % len(body['Violations'])

        outdict[id_] = {'index': index,
                        'doc_type': doc_type,
                        'id': id_,
                        'body': body}


        if g_row == 1:
            b = outdict[1]['body']
            print "more checks: %d " % len(b['Violations'])

print语句的输出如下:

another check: 8
more checks: 0

不知何故,在第一个和第二个print语句之间,缺少8个值。我们可以看到这不是由于一个被调用的函数。当我分配与outdict相关联的数据结构时,似乎会发生这种情况。

此问题不仅限于使用字典。以前,我曾尝试过'outlist',其中附加了一个包含四个字典的元组。这引起了同样的问题。

真的不确定这里发生了什么。请让我知道你的想法。

使用Python 2.7.8,Fedora 21,virtualenvwrapper。

试图在单独的脚本中复制该问题。它看起来像这样:

#! /usr/bin/python

body = {}
body['Violations'] = []
body['Violations'].append({'foo': 7,
                           'bar': 8,
                           'baz': 9})
body['Violations'].append({'tez': 2,
                           'rez': 4,
                           'sez': 6})


print "another check: %d " % len(body['Violations'])

outdict = {}

outdict[1] = {'index': 'foo',
              'doc_type': 'doc',
              'id': 1,
              'body': body}

print "more checks: %d " % len(body['Violations'])

此代码无法复制该问题。所以现在我真的怀疑是否存在与数据结构相关的错误。更可能的情况是我在某个地方出现了语法错误但是没有被提升?

这是给我问题的确切代码的link。那里有印刷文件。让我知道你的想法/你是否可以复制。感谢

0 个答案:

没有答案