【问题标题】:Trouble Connecting Scrapy Pipeline to Firestore DB将 Scrapy 管道连接到 Firestore 数据库时遇到问题
【发布时间】:2021-04-11 19:06:11
【问题描述】:

我是一个 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

【问题讨论】:

    标签: python-3.x web-scraping scrapy


    【解决方案1】:

    你有一个拼写错误 Client() 而不是 client()

    db = firestore.Client()
    

    来自documentation

    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()))
    

    【讨论】:

      猜你喜欢
      • 2019-10-01
      • 2019-12-16
      • 1970-01-01
      • 2023-03-08
      • 2020-06-07
      • 2014-05-17
      • 2014-12-24
      • 2021-11-13
      • 2018-06-19
      相关资源
      最近更新 更多