嘗試在實時市場中列印多個加密貨幣的 LTP 資料,但僅列印一種加密貨幣。
import pandas as pd
import requests
import json
ltp_data= []
crypto = {"BTCUSDT", "LTCUSDT", "DOGEUSDT"}
def live_ltp():
for i in crypto:
key = "https://api.binance.com/api/v3/ticker/price?symbol="
url = key i
response = requests.get(url)
Ltp = response.json()
ltp_data.append(Ltp)
return Ltp
while True:
print(str(live_ltp()))
uj5u.com熱心網友回復:
return 一旦被擊中就會退出你的回圈。如果您將 return 陳述句帶出回圈,并讓它回傳 ltp_data (而不是“LTP” json 物件),您應該能夠獲取您似乎正在填充的串列中的專案。
ltp_data= []
crypto = {"BTCUSDT", "LTCUSDT", "DOGEUSDT"}
def live_ltp():
for i in crypto:
key = "https://api.binance.com/api/v3/ticker/price?symbol="
url = key i
response = requests.get(url)
Ltp = response.json()
ltp_data.append(Ltp)
return ltp_data
crypto_ltps = live_ltp()
print(crypto_ltps)
uj5u.com熱心網友回復:
您在回圈末尾添加了 return 陳述句,因為它只執行一次并且只回傳 1 個資料。
反而,
import pandas as pd
import requests
import json
ltp_data= []
crypto = {"BTCUSDT", "LTCUSDT", "DOGEUSDT"}
def live_ltp():
responses = []
for i in crypto:
key = "https://api.binance.com/api/v3/ticker/price?symbol="
url = key i
response = requests.get(url)
Ltp = response.json()
ltp_data.append(Ltp)
responses.append(Ltp)
return responses
while True:
print(str(live_ltp()))
這將解決問題。
希望這對你有幫助!!!如果您對此有任何錯誤,請自由發表評論,如果有效,請將答案標記為正確。
uj5u.com熱心網友回復:
您有一個回圈return Ltp,for因此您將始終只獲得一組加密 id 中第一項的單個回應。您可以在回圈結束return lpd_data 后執行。但這產生了一個新問題——因為你正在更新一個全域串列,它只會不斷增長。
相反,撰寫您的函式以獲取輸入引數并回傳本地生成的串列。
import pandas as pd
import requests
import json
def live_ltp(crypto_ids):
ltp_data = []
for i in crypto_ids:
key = "https://api.binance.com/api/v3/ticker/price?symbol="
url = key i
response = requests.get(url)
Ltp = response.json()
ltp_data.append(Ltp)
return ltp_data
crypto = {"BTCUSDT", "LTCUSDT", "DOGEUSDT"}
while True:
print(str(live_ltp(crypto)))
uj5u.com熱心網友回復:
資料框到位的解決方案。
您需要將空資料框傳遞給函式:live_ltp(df_frame)。
我也會用來.json_normalize正確設定桌子。
import pandas as pd
import requests
import json
ltp_data = pd.DataFrame() # empty dataframe (not list) which will be updated in the function below
crypto = {"BTCUSDT", "LTCUSDT", "DOGEUSDT"}
def live_ltp(df_frame):
for i in crypto:
key = "https://api.binance.com/api/v3/ticker/price?symbol="
url = key i
response = requests.get(url)
Ltp = response.json()
ltp_df = pd.json_normalize(Ltp)
ltp_df['time'] = pd.Timestamp.now()
df_frame = pd.concat([df_frame, ltp_df], axis=0)
return df_frame
while True:
final_df = live_ltp(ltp_data) # passing empty dataframe to function
final_df.to_excel('test.xlsx', index=False)
print(final_df)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/503884.html
上一篇:三種不同格式的數字
