簡體   English   中英

如何為名稱設置范圍?

[英]How can I make a range for a name?

我正在嘗試為 Telegram 機器人制作一個按鈕,該按鈕將添加列表中的所有名稱。 但是,在我的代碼中有一個錯誤,只顯示姓氏。 我怎樣才能解決這個問題?

我的代碼:

with open(file_path) as file:
    urls_list = [line.strip() for line in file.readlines()]
    s = requests.Session()
    for url in urls_list:
        response = s.get(url=url).json()
        json_data = response['data'] 
        name = json_data["name"]

@dp.message_handler(Text(equals='Coins'))
async def get_coin(message: types.Message):
    buttons2 = [f'{name}']
    keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
    keyboard.add(*buttons2)
    await message.answer('Choose value', reply_markup=keyboard)

JSON:

https://api.coinmarketcap.com/data-api/v3/cryptocurrency/market-pairs/latest?slug=usd-coin&start=1&limit=100&category=spot&sort=cmc_rank_advanced 
https://api.coinmarketcap.com/data-api/v3/cryptocurrency/market-pairs/latest?slug=solana&start=1&limit=100&category=spot&sort=cmc_rank_advanced 
https://api.coinmarketcap.com/data-api/v3/cryptocurrency/market-pairs/latest?slug=cardano&start=1&limit=100&category=spot&sort=cmc_rank_advanced 

您在循環中使用name = json_data["name"] ,因此每個迭代name都會重新分配給一個新值。 然后你得到這個值並傳遞給鍵盤。 這就是為什么only the last name is displayed的原因。

嘗試將值收集到列表中,而不是將它們覆蓋到單個變量中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM