我想删除None
值来修改我的mongo数据库集合数据。我有一个嵌套的词典。
我做了一个查询来获取我的db上的所有数据库:
doc = db.events.find()
for document in doc:
print document
一份印刷文件如下:
{ u'_id': u'55f16d2a0f5cb40aa26a6f1b', u'event': {u'values': u'None', u'condition': u'None', u'comment': u'', u'date': u'None', u'delete': u'false'}}
所以我想替换每个文档中的所有None
值,其中“无”写入No
,并将更新的文档保存在数据库中。
所以我这样做了:
def replace_none_values():
doc = db.events.find()
for document in doc:
for key, value in document.items():
if key == 'event':
event_part = value
for key1, value1 in event_part:
if value1 is None:
document['event'][key1] = 'No'
db.events.save(document)
replace_none_values()
但for key1, value1 in event_part:
中的代码未执行。我不知道为什么,我在这里做错了什么?有人可以帮帮我吗?
答案 0 :(得分:0)
在您的示例中,当您致电replace_none_values
使用:
replace_none_values()
而不是:
replace_none_values
答案 1 :(得分:0)
再次使用items
方法,因为您拥有的是嵌套词典。请注意,字典中的值不是常量None
,而是字符串'None'
,因此if value1 is None
不会按照您的意图执行:
for key1, value1 in event_part.items():
# ^
if value1 == 'None':
document['event'][key1] = 'No'
然后调用函数:replace_none_values()