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
Post a Comment