python - Mengapa program berhenti melaksanakan pada ketika ini: if isinstance(item, AnItem): Ayat ini jelas benar, tetapi ia tidak akan dilaksanakan pada ketika ini.
漂亮男人
漂亮男人 2017-05-18 10:57:41
0
2
827

Saya menentukan AnItem dalam item

Ia juga ditakrifkan dalam spider.py menggunakan item = AnItem().

Mengapa di atas: jika isinstance(item, AnItem): Ayat berikut tidak akan dilaksanakan.

Penjelasan: jika isinstance(item, AnItem): adalah palsu, saya tidak tahu mengapa?

Saya melihat kod orang lain. Terdapat juga contoh di Internet yang ditulis seperti ini

Saya tidak tahu apa yang saya salah tulis?

class AnPipeline(object):
    def process_item(self, item, spider):
        print ('process_item1111111111111111111111111111')
        if isinstance(item, AnItem):
            print ('process_item222222222222222222222222222')
            title = item['title']
            content = item['content']
            Sql.insert_data_all(title, content)
            print (u'存完一条信息aaaaaaaaaaaa')
            return item
漂亮男人
漂亮男人

membalas semua(2)
过去多啦不再A梦

Adakah ia benar atau salah?

習慣沉默

jika isinstance(item, AnItem):

    print ('zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz')
else:
    print ('jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj')

Mengujinya menggunakan pernyataan di atas dalam saluran paip.py: output jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
Saya tidak tahu apa yang salah.
Mengikut logik biasa, ia ditakrifkan dalam spiders.py: item = ZbaqcnItem()
Semua yang perlu diimport adalah diimport. Kemudian ia dalam pipelines.py Ia sepatutnya benar?

Sekarang saya rasa perlu ada masalah dengan barang import?

Saya mengimport seperti ini dalam anspiders.py:
dari aqccncn.items import AnItem
Ia sentiasa menggesa ralat. ImportError: Tiada modul bernama item
Saya mencari dalam talian untuk masa yang lama dan tidak menemui penyelesaian yang boleh dilaksanakan.
Tiada pilihan selain menggunakan kaedah berikut.

Kemudian saya mencipta items.py dalam fail spiders
Saya mengimportnya menggunakan item import AnItem.

Kemudian jika isinstance(item, AnItem): adalah Palsu.

Adakah ini sebabnya?

Akhirnya——————————————————————————————————————————————
Diubah suai pada 2016/04/29 18:04:

——————————————————————————————

Terima kasih semua. Sudah diselesaikan. Ternyata pada mulanya, dari aaaa.items import AnItem sentiasa menimbulkan ralat. Saya mencipta item.py dalam fail spiders sekali lagi, jadi item.py yang diimport tidak sama, jadi AnItem() juga tidak sama.

Tetapi ada satu lagi soalan:

Jika anda mencipta fail items.py dalam direktori yang sama dengan fail settgins.py dalam folder spiders. Mengapa mengimport seperti ini: daripada AnAnAn.items import AnItem akan menggesa: ImportError: Tiada modul bernama AnAnAn.items?
Dalam folder AnAnAn, jelas terdapat item.py yang dijana secara lalai, dan kod yang sepadan ditambahkan padanya.

Apakah masalah ini? terima kasih.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!