假设这代表了我需要插入的复杂文档:
customer = {
'first_name' : 'Arnold',
'last_name' : 'Pettibone',
'addresses': [
'home' : {
'street' : '1234 fake street',
'city' : 'Anytown',
'state' : 'OH',
'zip' : '12345'
},
'work' : {
'street' : '742 Evergreen Terrace',
'city' : 'Springfield',
'state' : 'OH',
'zip': '12345'
}
]
}
我在字符串变量中有first_name
和last_name
。我有2维列表中的地址 - 许多地址,每个地址有4个字段。
如何在Python中将列表动态附加到客户文档?
这是一些错误的伪代码。我是Python和MongoDB的新手,所以我确信我有一些基本的Python可以解决这个问题。
customer = {
'first_name' : 'Arnold',
'last_name' : 'Pettibone',
}
'addresses': [
for item in address_list:
{
'street' : item[0],
'city' : item[1],
'state' : item[2],
'zip' : item[3]
}
]
}
答案 0 :(得分:2)
如果您的初始设置是这样的:
>>> first_name = 'Arnold'
>>> last_name = 'Pettibone'
>>> addresses = [['1234 fake street', 'Anytown', 'OH', '12345'],]
>>> addresses = [['1234 fake street', 'Anytown', 'OH', '12345'],
... ['742 Evergreen Terrace', 'Springfield', 'OH', '12345']]
...
然后你可以建立一个"客户" dict如:
>>> customer = {
... 'first_name': first_name,
... 'last_name': last_name,
... 'addresses': [{
... 'street' : item[0],
... 'city' : item[1],
... 'state' : item[2],
... 'zip' : item[3]
... } for item in addresses]}
...
结果是这样的:
>>> import pprint
>>> pprint.pprint(customer)
{'addresses': [{'city': 'Anytown',
'state': 'OH',
'street': '1234 fake street',
'zip': '12345'},
{'city': 'Springfield',
'state': 'OH',
'street': '742 Evergreen Terrace',
'zip': '12345'}],
'first_name': 'Arnold',
'last_name': 'Pettibone'}