Я использую функцию scrap_data (код доступен). Я использую Jupyter. проблема: когда я использую scrap_data (), len of data_di c var, который является глобальным, обновляется медленно. когда я делаю это, я вижу, что длина data_di c постоянна до и после запуска ячейки.
print(len(data_dic))
scrap_data()
print(len(data_dic))
, но после I print(len(data_dic))
в новой ячейке в течение 2 или 3 раз, Я вижу, что len (data_di c) обновлено правильно. - Я заметил, что клетка выполнена правильно. - Я должен указать, что scrap_data выполняется без ошибок. - Я также поместил scrap_data в l oop с 3 повторениями, но результат печати scrap_data остается постоянным. В чем проблема с обновлением global (data_di c) в функции asyn c?
это мой код:
global data_dic
data_dic = []
connectionData = [...]
async def websocketConnect():
def startReceiving(arg):
r = requests.get(".../realTimeServer/start", params = wsParams)
r = requests.get(".../realTimeServer/negotiate", params = {...})
response = r.json()
wsParams = {...}
websocketUri = f".../realTimeServer/connect?{urllib.parse.urlencode(wsParams)}"
result = []
async with websockets.connect(websocketUri) as websocket:
thread = Thread(target = startReceiving, args = (0, ))
thread.start()
for i in range(0,10):
data = await websocket.recv()
jsonData = json.loads(data)
result= jsonData["M"][0]["A"][0]
break
thread.join()
global data_dic
data_dic.append([datetime.datetime.now(), json.dumps(result, indent=4, sort_keys=True)])
return
def scrap_data():
asyncio.ensure_future(websocketConnect())
print(len(data_dic))
return