symbols = ['A','B','C']
datalist1a = []
datalist1b = []
def get_tasks1(session1):
tasks1 = []
for symbol in symbols:
tasks1.append(session1.get(url1.format(symbol)))
return tasks1
async def run_tasks1():
session1 = aiohttp.ClientSession()
tasks1 = get_tasks1(session1)
responses1 = await asyncio.gather(*tasks1)
for response1 in responses1:
datalist1a.append(await response1.json())
datalist1b = sum(datalist1a, [])
await session1.close()
datalist1a 給出以下輸出,每個符號有 2 個資料(可以通過 API 引數更改)
[
[
[1642086000000, '0.031', '0.032', 1642086299999, '0'],
[1642086300000, '0.033', '0.036', 1642086599999, '0']
],
[ [1642086000000, '0.101', '0.111', 1642086299999, '0'],
[1642086300000, '0.091', '0.099', 1642086899999, '0']
],
[ [1642086000000, '0.431', '0.461', 1642086299999, '0'],
[1642086300000, '0.461', '0.481', 1642086899999, '0']
]
然后我應用 sum(datalist1a, []),新的輸出如下:
[
[1642086000000, '0.031', '0.032', 1642086299999, '0'],
[1642086300000, '0.033', '0.036', 1642086599999, '0'],
[1642086000000, '0.101', '0.111', 1642086299999, '0'],
[1642086300000, '0.091', '0.099', 1642086899999, '0'],
[1642086000000, '0.431', '0.461', 1642086299999, '0'],
[1642086300000, '0.461', '0.481', 1642086899999, '0']
]
最終格式可以很好地插入/更新到資料庫中。
但是 API 不包含資料中的符號。
我需要將每個符號插入到相應的串列中。由于某些資料可能丟失、為空或給出錯誤,我認為將符號串列附加到最終資料不是一個好主意。
我需要的:
[
['A', 1642086000000, '0.031', '0.032', 1642086299999, '0'],
['A', 1642086300000, '0.033', '0.036', 1642086599999, '0'],
['B', 1642086000000, '0.101', '0.111', 1642086299999, '0'],
['B' 1642086300000, '0.091', '0.099', 1642086899999, '0'],
['C', 1642086000000, '0.431', '0.461', 1642086299999, '0'],
['C' 1642086300000, '0.461', '0.481', 1642086899999, '0']
]
uj5u.com熱心網友回復:
您可以添加另一個執行 HTTP 呼叫并回傳回應和符號的協程。所以在代碼中,我會想到類似的東西
def get_tasks1(session1):
async def get_response_and_symbol(symbol:str) -> tuple[Response, str]:
response = await session1.get(url1.format(symbol))
return response, symbol
return [get_response_and_symbol(symbol) for symbol in symbols]
...
這應該給你一個符號和回應。您只需要進一步確保如何根據您的需要正確處理它。
uj5u.com熱心網友回復:
謝謝,它就像一個魅力。唯一的事情是
for i in responses1:
datalist1a.extend(sum(([i[1]], await i[0].json()), []))
給出輸出:
[
'A',
[1642086000000, '0.031', '0.032', 1642086299999, '0'],
[1642086300000, '0.033', '0.036', 1642086599999, '0'],
'B',
[1642086000000, '0.101', '0.111', 1642086299999, '0'],
[1642086300000, '0.091', '0.099', 1642086899999, '0'],
'C',
[1642086000000, '0.431', '0.461', 1642086299999, '0'],
[1642086300000, '0.461', '0.481', 1642086899999, '0']
]
我會想辦法弄明白的
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/410851.html
標籤:
