mirror of https://github.com/scrapy/scrapy.git
fix: use is_listlike
This commit is contained in:
parent
c76190d491
commit
fed7c8b4fc
|
|
@ -11,7 +11,7 @@ from six.moves import cPickle as pickle
|
||||||
from xml.sax.saxutils import XMLGenerator
|
from xml.sax.saxutils import XMLGenerator
|
||||||
|
|
||||||
from scrapy.utils.serialize import ScrapyJSONEncoder
|
from scrapy.utils.serialize import ScrapyJSONEncoder
|
||||||
from scrapy.utils.python import to_bytes, to_unicode
|
from scrapy.utils.python import to_bytes, to_unicode, is_listlike
|
||||||
from scrapy.item import BaseItem
|
from scrapy.item import BaseItem
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|
@ -139,8 +139,7 @@ class XmlItemExporter(BaseItemExporter):
|
||||||
if hasattr(serialized_value, 'items'):
|
if hasattr(serialized_value, 'items'):
|
||||||
for subname, value in serialized_value.items():
|
for subname, value in serialized_value.items():
|
||||||
self._export_xml_field(subname, value)
|
self._export_xml_field(subname, value)
|
||||||
elif (hasattr(serialized_value, '__iter__')
|
elif is_listlike(serialized_value):
|
||||||
and not isinstance(serialized_value, six.string_types)):
|
|
||||||
for value in serialized_value:
|
for value in serialized_value:
|
||||||
self._export_xml_field('value', value)
|
self._export_xml_field('value', value)
|
||||||
else:
|
else:
|
||||||
|
|
@ -261,8 +260,7 @@ class PythonItemExporter(BaseItemExporter):
|
||||||
return self.export_item(value)
|
return self.export_item(value)
|
||||||
if isinstance(value, dict):
|
if isinstance(value, dict):
|
||||||
return dict(self._serialize_dict(value))
|
return dict(self._serialize_dict(value))
|
||||||
if hasattr(value, '__iter__') \
|
if is_listlike(value):
|
||||||
and not isinstance(value, six.string_types):
|
|
||||||
return [self._serialize_value(v) for v in value]
|
return [self._serialize_value(v) for v in value]
|
||||||
if self.binary:
|
if self.binary:
|
||||||
return to_bytes(value, encoding=self.encoding)
|
return to_bytes(value, encoding=self.encoding)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue