在 Python pymongo mongodb 中动态添加列表作为嵌入文档
Dynamically add lists as embedded document in Python pymongo mongodb
假设这代表我需要插入的复杂文档:
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
。我有二维列表中的地址 - 许多地址,每个地址都有 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]
}
]
}
如果您的初始设置是这样的:
>>> 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']]
...
然后你可以构造一个 "customer" 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'}
假设这代表我需要插入的复杂文档:
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
。我有二维列表中的地址 - 许多地址,每个地址都有 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]
}
]
}
如果您的初始设置是这样的:
>>> 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']]
...
然后你可以构造一个 "customer" 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'}