Scrapy輸出CSV指定順序的列表

2021-08-09 02:33:54 字數 1221 閱讀 5727

scrapy執行這個指令碼

cmdline.execute("scrapy crawl detail -o ductdetail.csv")輸出資料時,發現欄位item/field的順序不正確,因為

item中的資料是按照字典來輸出的,因為字典是隨機的無序的,所以也導致輸出的excle**中的資料也是無序的。

以下配置將解決上面的問題,然後按照你想要的順序輸出資料
1.在spiders的目錄下新建乙個類itemcsvexporter(目錄一定要在spiders下

),**如下:

from scrapy.conf import settings

from scrapy.contrib.exporter import csvitemexporter

class itemcsvexporter(csvitemexporter):

def __init__(self, *args, **kwargs):

delimiter = settings.get('csv_delimiter', ',')

kwargs['delimiter'] = delimiter

fields_to_export = settings.get('fields_to_export', )

if fields_to_export :

kwargs['fields_to_export'] = fields_to_export

super(itemcsvexport

2.在settings.py中新增如下**,用來指定item中feild的順序,也就是你想要資料輸出順序

feed_exporters =  #這裡假設你的project名字為ljnew

fields_to_export = [

'productname',

'productprice',

'prime',

'fee',

'discount',

'overseapurchas',

'productsize',

'productcolor',

'producturl',

]

3.目錄截圖如下

CSV輸入輸出

讀取csv檔案 import csvcf open d pywe.csv rb cf.readline 讀取標題行,游標移動到下一行 相當於調過標題行 for l in csv.reader cf print l 0 l 1 l為list import csvcf open d pywe.csv r...

執行緒按指定順序輸出字元到陣列

題目 有三個執行緒,執行緒1的功能就是向字元陣列輸出a,執行緒2的功能就是向字元陣列輸出b,執行緒2的功能就是向字元陣列輸出c,要求按順序向陣列賦值abcabcabc,abc的個數由執行緒函式1的引數指定。介面說明 void init 初始化函式 void release 資源釋放函式 unsign...

執行緒按指定順序輸出字元到陣列

題目 有三個執行緒,執行緒1的功能就是向字元陣列輸出a,執行緒2的功能就是向字元陣列輸出b,執行緒2的功能就是向字元陣列輸出c,要求按順序向陣列賦值abcabcabc,abc的個數由執行緒函式1的引數指定。介面說明 void init 初始化函式 void release 資源釋放函式 unsign...