簡體   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