使用pymong在MongoDB中插入文档

2024-09-28 17:17:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我第一次使用Python运行爬虫程序。我已经让爬虫程序工作了,现在我想用pymongo将结果保存在我的MongoDB中,但是由于某些原因,我得到了这个错误:“NameError:name'city'is not defined”。如果我用引号将城市括起来,它会像预期的那样工作,但我想保存它。有人做过类似的事情或者知道解决方法是什么吗

def gotHolidays(self, response):
        cityName = response.meta['name']
        feriado = []
        facult = []
        for selector in response.css("span.one"):
            feriado.append(selector.css("::text").extract())

        for selector in response.css("span.two"):
            facult.append(selector.css("::text").extract())

        city = {
            'city': cityName,
            'holidays':{
                'facult': facult,
                'feriado': feriado                
            }
        }
        print(json.dumps(city))

    from pymongo import MongoClient
    client = MongoClient()
    client = MongoClient ('localhost', 27017)
    db = client['myBank']
    myCollection = db.myCollection
    myCollection_data = {
        'cities': city
    }
    result = myCollection.insert_one (myCollection_data)

Tags: name程序clientcityforresponseselectorcss
1条回答
网友
1楼 · 发布于 2024-09-28 17:17:10

缩进在代码段中看起来是错误的。 行from pymongo import ...应与前一行处于相同的缩进级别:

        print(json.dumps(city))

        from pymongo import MongoClient
        client = MongoClient()

对于python,缩进定义了范围。python将取消缩进的代码解释为“函数结束”。因此,当您尝试访问'city'变量时,它不再在范围内

相关问题 更多 >