[英]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.