JSON запись текста
Как сделать так , чтобы idea = message.text была записана в JSON файл для того, чтобы потом пользователь смог вызвать функцию отображения всех раннее записанных записей? На данный момент он отображает содержимое JSON файла, но не более:
Вот код функции ввода :
def user_write(message):
idea = message.text
markup4 = types.ReplyKeyboardMarkup(resize_keyboard=True)
write = types.KeyboardButton("?Записать ещё мысль")
thing = types.KeyboardButton("? Вспомнить мысли")
back = types.KeyboardButton("❌ Вернутся в главное меню")
markup4.add(write, thing, back)
with open("data.json", encoding='utf-8') as file:
data = json.load(file)
msg = client.send_message(message.chat.id, f"Ваша мысль:{idea}\nУспешна записана в Yaжедневник.", reply_markup=markup4)
client.register_next_step_handler(msg, user_answer)
Код вывода :
elif message.text == "? Вспомнить мысли":
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
write = types.KeyboardButton("?Записать ещё мысль")
back = types.KeyboardButton("❌ Вернутся в главное меню")
markup.add(write, back)
with open('data.json', 'r', encoding='utf-8') as f: # открыли файл
text = json.load(f) # загнали все из файла в переменную
msg = client.send_message(message.chat.id, 'Ваш список мыслей :' + str(text), reply_markup=marku
client.register_next_step_handler(msg, user_answer)
Вот код json файла:
{
"ideas": [
{
"text": ""
}
]
}
Вывод выглядит следующим образом :
>bot, [31.07.2022 13:45]
>Ваша мысль:Как мне быть
>Успешна записана в Bot.
>User, [31.07.2022 13:45]
>? Вспомнить мысли
>bot, [31.07.2022 13:45]
>Ваш список мыслей :{'ideas': [{'text': ''}]}
Ответы (1 шт):
Автор решения: Сергей Ш
→ Ссылка
не ответ
import json
# dct - словарь
dct = {"ideas": ["Что купмть?"]}
jsn = json.dumps(dct)
# print(type(jsn))
# <class 'str'> jsn - строка в формате json
dct = json.loads(jsn)
# print(type(dct))
# <class 'dict'> dct - словарь
idea = input('Ваша мысль:')
# Ваша мысль:Попить пиво
dct['ideas'] += [idea]
#print(dct)
# {'ideas': ['Что купмть?', 'Попить пиво']}
print('Ваш список мыслей:', *dct['ideas'], sep='\n')
Ваш список мыслей:
Что купмть?
Попить пиво