Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 零碎更改项目订单_Python_Python 2.7_Scrapy_Scrapy Spider - Fatal编程技术网

Python 零碎更改项目订单

Python 零碎更改项目订单,python,python-2.7,scrapy,scrapy-spider,Python,Python 2.7,Scrapy,Scrapy Spider,我正在抓取一些数据并将其导出到json文件,但我似乎无法设置项目的顺序。在阅读了一些文章之后,我发现scrapy条目是python dict的包装,并且将以不可预测的顺序返回条目字段 我尝试补充: def keys(self): return ['item1', 'item2', 'item3'] 现在,输出仅包含这3个项目,但顺序仍然不可预测。是否可以设置这些项目的顺序?在JSON中,对象定义如下: An object is an unordered set of name/

我正在抓取一些数据并将其导出到json文件,但我似乎无法设置项目的顺序。在阅读了一些文章之后,我发现scrapy条目是python dict的包装,并且将以不可预测的顺序返回条目字段

我尝试补充:

    def keys(self):
    return ['item1', 'item2', 'item3']

现在,输出仅包含这3个项目,但顺序仍然不可预测。是否可以设置这些项目的顺序?

在JSON中,对象定义如下:

An object is an unordered set of name/value pairs.

大多数JSON实现都不努力保持对象名称/值对的顺序,因为它(根据定义)并不重要


因此,最后我切换了数据格式。

在JSON中,对象定义如下:

An object is an unordered set of name/value pairs.

大多数JSON实现都不努力保持对象名称/值对的顺序,因为它(根据定义)并不重要


因此,最后我切换了数据格式。

您可以尝试生成/返回
collections.orderedict
实例。Scrapy应该把它们理解为物品。我不确定JSON导出是否会尊重关键顺序,但您可以尝试(并在这里为我们其他人报告)它似乎不是这样,JSON仍然会更改项目的顺序。您可以尝试生成/返回
collections.OrderedDict
实例。Scrapy应该把它们理解为物品。我不确定JSON导出是否会尊重关键顺序,但您可以尝试(并在这里为我们其他人报告)它似乎不是这样,JSON仍然会更改项目的顺序。