繁体   English   中英

从MongoDB(PyMongo)访问集合的关键错误

[英]Key Error in accessing collections from MongoDB (PyMongo)

为什么这样做:

import pymongo
from selenium import webdriver
import smtplib
import sys
import json

from pymongo import MongoClient
client = MongoClient('localhost', 27017)

db = client.properties
collection = db['capitalpacific']

fromDB = []

if collection.count() != 0:
    for post in collection.find():
        fromDB.append(post)

print(fromDB[0]['url']) 

仅从集合(xxx.com)的文档1中正确打印url

但是当我这样做时,我得到一个keyError:

for i in range(0, 2):
print(fromDB[i]['url'}

KeyError:“ url”

存储在数据库中的文档如下所示:{'url':'xxx.com','location':'oregon'}

KeyError通常表示该键在字典集合中不存在。

例如 :

>>> mydoc1=dict(url='xxx.com', location='oregon')
>>> mydoc2=dict(wrongkey='yyy.com', location='oregon')
>>> mylist=[]
>>> mylist.append(mydoc1)
>>> mylist.append(mydoc2)
>>> print mylist[0]['url']
xxx.com

>>> for i in range(0, 2):
...     print(mylist[i]['url'])
...
xxx.com
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
KeyError: 'url'
>>>

在这里,mydoc2没有名为“ url”的键,因此对于列表中的第二个元素引发了“ KeyError”。

因此,您确定前两个记录中存在“ URL”。 您可以打印“ fromDB”的内容并确保前两个记录具有“ url”键。

>>> print mylist
[{'url': 'xxx.com', 'location': 'oregon'}, {'wrongkey': 'yyy.com', 'location': 'oregon'}]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM