json序列化問題
發現不用重寫 json.JSONEncoder
今天寫爬蟲處理 item 時
使用ubuntu16.4,python3 ,scrapy
報出錯誤: TypeError: Object of type 'PangciItem' is not JSON serializable
是 json序列化問題,然後自己在網上查,大部分的解決方法是自定義類並重寫 json.JSONEncoder
錯誤代碼 21 行:
實驗 print( type(item) ) <放與 函數 process_item 中>
發現item不是字典類型的,於是考慮到將 item 轉換 成字典
def process_item(self, item, spider):
print(type(item))
dic = dict(item)
print(type(dic))
data = json.dumps(dic,ensure_ascii=False)
//併成一行是data = json.dumps(dict(item),ensure_ascii=False)
self.file.write(data)
return item
操作成功,運行不在報 json 序列化錯誤。
是數據類型的問題,json.dumps 操作字典類型數據可自行序列化,
其他的數據類型 需要自己處理,序列化