iFortunes
@iFortunes

Как записать в БД в формате json определённые индексы и значения из списка на python?

Суть вопроса в следующем,
на php достаточно просто записать такой массив:
$data = [
'0' => 1,
'4' => 2,
'7' => 3
];
json_encode($data); и пишем в БД.

Каким образом можно записать такого же формата только на питоне? То есть с сохранением порядка ключей массива.
  • Вопрос задан
  • 444 просмотра
Решения вопроса 1
crazyzubr
@crazyzubr
Python backend-developer
Полагаю, что в БД записать даже на php недостаточно записи $data = ['0'=>1, '4'=>2]

В python делается примерно так:

import json

data = {'0': 1, '4': 2}
instance.field_name = json.dumps(data)
instance.save()


Также можно использовать поле JSONField, тогда чтение/запись json будет прозрачным:

from django.contrib.postgres.fields import JSONField
from django.db import models

class CustomModel(models.Model):
    json_field_name = JSONField()

instance = CustomModel()
instance.field_name = {'0': 1, '4': 2}
instance.save()


Сохранить порядок ключей можно только, если использовать OrderedDict, однако это не гарантирует, что при сохранении в JSON и чтении порядок сохранится. Лучше для таких целей немного изменить формат данных, например, использовать список:

data = [{'0': 4}, {'4': 2}]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы