Rumah  >  Soal Jawab  >  teks badan

python - Mengapa program berhenti melaksanakan pada ketika ini: if isinstance(item, AnItem): Ayat ini jelas benar, tetapi ia tidak akan dilaksanakan pada ketika ini.

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
漂亮男人漂亮男人2683 hari yang lalu829

membalas semua(2)saya akan balas

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-18 10:59:41

    Adakah ia benar atau salah?

    balas
    0
  • 習慣沉默

    習慣沉默2017-05-18 10:59:41

    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.

    balas
    0
  • Batalbalas