python - json.dumps() can not convert a dict whose value is list -


when learn web crawler scrapy, , save data json. found json.dumps () can not work on list of values list,like this:

def __init__(self):     self.file = codecs.open("mydata2.json","wb",encoding="utf-8")  def process_item(self, item, spider):      line = json.dumps(i,ensure_ascii=false) + '\n'     print(line)     self.file.write(line)     return item def close_spider(self,spider):     self.file.close() 

it doesn't work.then modify code

def __init__(self):     self.file = codecs.open("mydata2.json","wb",encoding="utf-8")  def process_item(self, item, spider):     = dict(item)     key in i.keys():         i[key] = str(i[key])     print(i)     line = json.dumps(i,ensure_ascii=false) + '\n'     print(line)     self.file.write(line)     return item def close_spider(self,spider):     self.file.close() 

everything right.so how going?

maybe there data in origin type can not serialized. if convert string, can serialized.

you can define custom jsonencoder fix this.

to use custom jsonencoder subclass (e.g. 1 overrides default() method serialize additional types), specify cls kwarg; otherwise jsonencoder used.


Comments

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -