#python #json #django
#python #json #django
Вопрос:
я хотел бы знать, как я могу сохранить поле, которое я получаю из json, как dict. в поле моей базы данных. В настоящее время я получаю только
объект ‘int’ не вызывается
спасибо и с уважением
Комментарии:
1. Пожалуйста, добавьте полную модель и представление, а также полную обратную трассировку ошибок.
2. я добавил поле из models.py Остальное вырезано из задания celery, поэтому никаких представлений или шаблонов, только чистая обработка данных.
3. Что вы пытаетесь сделать с
user.acc_balance('confirmed')
? Как указано в ошибке,acc_balance
является целым числом, оно не знает, что делать с «подтвержденным» параметром, который вы передаете.4. да, я думаю, это моя ошибка, я просто хочу сохранить значение «подтверждено» в поле DB «user.acc_balance», ни больше, ни меньше.
5. Что с
update_or_create
частью? Вы хотите сохранить данные пользователя, которые у вас есть какuser
? Если я правильно понимаю, вы хотите сохранить подтвержденное значение из decoded_balance в поле acc_balance пользователя. Это правильно?
Ответ №1:
Я думаю, это то, что вы пытаетесь сделать:
decoded_balance = json.loads(check_balance)
user.acc_balance = decoded_balance["confirmed"]
user.save()
У вас уже есть user
, просто обновите это acc_balance
поле и сохраните его.
Кроме того, вы можете захотеть проверить, как анализировать json. Например, в этом случае у вас есть что-то вроде этого:
decoded_balance
# eg: {'confirmed': 2, 'unconfirmed': 3}
decoded_balance["confirmed"]
# 2
Комментарии:
1. хорошо, а что, если значение confirmed время от времени меняется или увеличивается? пока спасибо: D
2. я не знаю большей области вашего кода, но если у вас уже есть пользователь в переменной, как в этом случае, вы обновляете поле acc_balance, присваивая новое значение и сохраняя его. Вы бы использовали update_or_create, если вы не знаете наверняка, что пользователь существует, также вам нужно было бы передать все другие поля, необходимые для получения или создания правильного пользователя, а не только acc_balance