uper Order Items в JSON объекты с "json.dumps"? .dumps «Преобразовать список словарей в JSON. Тем не менее, вы заметили, что порядок ключей в каждом словаре не так, как ожидалось. В частности, вам нужны клавиши, чтобы появиться в порядке «id», «name» и «timezone».
daseing
оба словаря Python (до Python 3.7) и объекты JSON - это неупорядоченные коллекции. Это означает, что порядок ключей в словарном или объекте JSON не гарантирован. «json.dumps» для сортировки ключей в выходе JSON. Например:
import json iness.append ({"id": row.id, "name": row.name, "timezone": row.timezone}) print (json.dumps (страны, sort_keys = true))
это выведет json с ключами в следующем порядке: [ {"id": 1, "имя": "Маврикий", "Timezone": 4}, {"id": 2, "name": "France", "Timezone": 2}, {"id": 3, "имя": "Англия", "Timezone": 1}, {"id": 4, "name": "USA", "Timezone": -4} ]
]
решение 2: Использование ourdEdDictimport json
countries.append({"id":row.id,"name":row.name,"timezone":row.timezone})
print(json.dumps(countries, sort_keys=True))
Если вам нужен определенный порядок для ключей, вы можете использовать класс "collections.ordereddict". Заказанный диск сохраняет порядок вставленных в него ключей. Например:
[ {"id": 1, "name": "Mauritius", "timezone": 4}, {"id": 2, "name": "France", "timezone": 2}, {"id": 3, "name": "England", "timezone": 1}, {"id": 4, "name": "USA", "timezone": -4} ]
это выведет json с ключами в порядке "id", "name" и "timezone".
в Python 3.6, а затем, порядок аргументов ключевых слов сохраняется в словарях. Это означает, что вы можете достичь того же результата, что и использование OrderedDict, просто указав ключи в желаемом порядке при создании словаря:
from collections import OrderedDict
countries_by_id = OrderedDict()
countries_by_id["id"] = row.id
countries_by_id["name"] = row.name
countries_by_id["timezone"] = row.timezone
print(json.dumps(countries_by_id))
это автоматически сохранит порядок ключей в выводе json. ]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3