[英]couldn't dispaly results using format in pymongo
我正在使用 jupyter notebook,pymongo。 我正在尝试使用格式显示我的结果。
这是我的收藏user
的示例
"_id": {
"$oid": "61bd0b558659f89f7e5b1c56"
},
"first_name": "Brandise",
"last_name": "Ingerman",
"email": "bingerman0@youku.com",
"gender": "Female",
"address": {
"city": "Fresno",
"state": "California",
"country": "United States",
"country_code": "US"
},
"card": {
"card_number": "3571237735836521",
"card_type": "jcb",
"currency_code": "USD",
"balance": 630.16
},
"married_status": "true"
这是我正在执行的查询
pipeline = [
{
"$match":{
"card.card_type": "jcb"
}
},
{
"$sort":{
"card.balance":-1
}
}
]
results = users.aggregate(pipeline)
for user in results:
print(" * user name: {first_name}, card number: {card_number}, balance: {balance}".format(
first_name=user["first_name"],
card_number=user["card.card_number"],
balance=user["card.balance"],
))
它说
15 print(" * user name: {first_name}, card number: {card_number}, balance: {balance}".format(
16 first_name=user["first_name"],
---> 17 card_number=user["card.card_number"],
18 balance=user["card.balance"],
19 ))
KeyError: 'card.card_number'
我试过打电话card_number
但它一直提示错误,不知道怎么做。
card_number=user["card"]["card_number"]
balance=user["card"]["balance"]
这应该有效。 返回的 MongoDB 文档应为嵌套字典格式。 因此,您需要逐步访问内部字典的键。 还建议您将从 mongo 获取的数据转换为 python 列表。 从长远来看,这使事情变得更容易。
您的收藏是否包含不存在card.card_number
键的条目?
尝试运行此查询以查看是否有:
users.find({"card.card_number": {$exists: False}})
pipeline = [
{
"$match":{
"card.card_type": "jcb"
}
},
{
"$sort":{
"card.balance":-1
}
}
]
results = users.aggregate(pipeline)
for user in results:
print(" * user name: {first_name}, card number: {card_number}, balance: {balance}".format(
first_name=user["first_name"],
card_number=user["card"]["card_number"],
balance=user["card"]["balance"],
))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.