2016-07-22 3 views
1

Я соскабливаю некоторые данные и экспортирую их в json-файл, но я не могу настроить порядок элементов. После некоторого чтения я обнаружил, что объекты Scrapy - это оболочки python dict и возвращают поля элемента в непредсказуемом порядке.Scrapy Change Items Order

я попытался добавить:

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

теперь выход состоит только из этих 3-х элементов, но порядок по-прежнему остается непредсказуемым есть в любом случае я мог бы установить порядок этих элементов?

+1

Вы можете попробовать сдавать/возвращать экземпляры 'collections.OrderedDict'. Терапия должна понимать их как предметы. Я не уверен, что экспорт JSON будет уважать порядок ключей, но вы можете попробовать (и сообщить об этом для всех нас) –

+0

Не похоже, что json по-прежнему изменяет порядок элементов. – user1443063

ответ

0

В JSON, объект определяется следующим образом:

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

См http://json.org.

Большинство реализаций JSON не прилагают усилий для сохранения порядка пар имен/значений объекта, поскольку он (по определению) не имеет значения.

Итак, в конце я переключил формат данных.

Смежные вопросы