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...