python-3.x - 将 Scrapy 管道连接到 Firestore 数据库时遇到问题
问题描述
我是一个 Python NOOB,试图使用 Python 3 将 Scrapy 结果写入 Firebase Firestore。Spider 结果正确记录到控制台,但我似乎无法写入我的 Firestore 数据库。任何帮助是极大的赞赏。
错误信息:
db = firestore.client()
AttributeError: module 'google.cloud.firestore' has no attribute 'client'
管道文件:
import firebase_admin
from firebase_admin import credentials, firestore
from google.cloud import firestore
class DataProcessPipeline:
def __init__(self):
cred = credentials.Certificate('./serviceAccountKey.json')
firebase_admin.initialize_app(cred,
{
'databaseURL': 'https://xxxxxxxxxxx.firebaseio.com'
}
)
def process_item(self, item, spider):
db = firestore.client()
doc_ref = db.collection('f1_articles')
doc_ref.add(item.to_dict())
# doc_ref.insert(dict(item))
return item
解决方案
你有一个错字Client()
而不是client()
:
db = firestore.Client()
从文档中:
from google.cloud import firestore
# Add a new document
db = firestore.Client()
doc_ref = db.collection(u'users').document(u'alovelace')
doc_ref.set({
u'first': u'Ada',
u'last': u'Lovelace',
u'born': 1815
})
# Then query for documents
users_ref = db.collection(u'users')
for doc in users_ref.stream():
print(u'{} => {}'.format(doc.id, doc.to_dict()))
推荐阅读
- vhdl - 如何将 8 位输入拆分为两个 4 位数据
- protractor - 最后一个 ii 值仅在第二个 for 循环中返回
- javascript - 是否可以使用正则表达式连续验证字符串
- android - Flutter UI 第一屏坏了
- spring-boot - Spring Boot部署成功后调用服务方法
- php - 是否可以从 PHP 中的十六进制/二进制(原始数据)值生成音频文件?
- javascript - 如何使用nodejs中的readline查找文件中代码的条件?
- python - 如何通过 python 客户端获取 kubernetes 中 pod 的日志和描述
- blockchain - 如何解码 SHA256 哈希值并在 Solidity 中检索数据
- angular - 如何使用 Angular 7 更新 firebase relatime 数据库中的属性键