Преобразование dctionary л oop python в Json - PullRequest
2 голосов
/ 15 апреля 2020

я программирую нового телеграмма бота. Я создал al oop, который вставляет переменную i в словарь dic, который описывает новую кнопку. Но когда я конвертирую dic в Json словарь, это дает мне эту проблему.

import botogram
import json

bot = botogram.create("1210935912:AAG4X8vHlXLM3jQWnxFKDB2NsZ6pqTQM7lQ")
list = ["La","Alaska","New Delhi"]
bot.about = "Benvenuti"
@bot.command("start")
def start_command(chat, message):
    for i in list:
        dict = {
            'chat_id': chat.id,
            'text': 'Where are you?',
            'reply_markup': {
            'keyboard': [[
                {'text': i},
                {'text': 'Action B'},
            ],
            [
                {
                    'text': 'Use geolocation',
                    'request_location': True,
                },
            ],
        ],
        'resize_keyboard': True,
        'one_time_keyboard': True,
        'selective': True,
        }
    }
    bot.api.call('sendMessage', json.loads(dict))

if __name__ == "__main__":
     bot.run()

Вывод:

TypeError: the JSON object must be str, bytes or bytearray, not dict

Ответы [ 2 ]

1 голос
/ 15 апреля 2020

Вам нужно использовать json.dumps для преобразования объекта в json

bot.api.call('sendMessage', json.dumps(dict))
1 голос
/ 15 апреля 2020

json - текстовое представление структуры данных.

json.loads преобразует строку json в словарь. Поскольку у вас уже есть словарь и вы хотите строку json, вам следует вместо этого использовать метод json.dumps.

...