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。那里有印刷文件。让我知道你的想法/你是否可以复制。感谢