Ускорить python API запрос - PullRequest
0 голосов
/ 27 января 2020

Привет, все, что я пытаюсь передать входные данные из CSV-файла в мой URL-адрес, и файл содержит миллионы записей, поэтому ответ очень медленный, занимает много времени, и когда-нибудь истечет время ожидания, может ли кто-нибудь помочь мне сделать это быстрее, я могу предоставить код но не данные и URL, поскольку это конфиденциально. вот мой код:

import pandas as pd
import requests
import json
from pandas.io.json import json_normalize
from flatten_json import flatten

 df=pd.read_excel('C:/data1.xlsx',index=None,index_col=None,encoding='UTF-8')
 df.head(5)
 df.shape
 df=df[['NAME','country']]
 df.head(5)

 passwd=b"abc"
 user=b"xxxxx"
 # Make a request to the endpoint using the correct auth values
 auth_values = (user,passwd)
 dd=df.values

 dfj = pd.DataFrame()

 for i,j in dd:

     url='http:xyz.com/&name='+str(i)+'&country='+str(j)    
     resp = requests.get(url,auth=auth_values)
     r=resp.json()

Пожалуйста, измените этот код, чтобы он стал быстрее

заранее спасибо за помощь

enter code here

1 Ответ

0 голосов
/ 28 января 2020

Попробуйте это для многопоточности.

from concurrent.futures import ThreadPoolExecutor
executors = ThreadPoolExecutor(max_workers = n) # n = int number of threads.
running_threads = []
#To do a job
run_threads = executors.submit(func,foo) #func is your function
running_threads.append(run_threads)
#To wait for your thread to end:
while True: #All inserts are complete
    if all(i.done() == True for i in running_threads):
        print("all done")
        break
    else:
        time.sleep(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...