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

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -