0
披露:我不是開發商或東西,只是不得不這樣做,因爲,我不得不這樣做。當然,當編碼蟒蛇編寫蟒蛇時,我感到非常自豪,但那真是太棒了。建議優化流程 - JSON - >大熊貓 - > CSV和MySQL
所以我不得不通過他們聚集API把數據從一個服務到MySQL表,並連接到它。令我驚訝的是,一切正如預期一樣工作,但有兩個問題:
- 腳本太慢了。執行它需要大約500-700秒。
- 它的工作原理,當我手動運行它,但它超時的調度。
所以我的問題給你,同胞社區,你能暗示我該怎麼讀或者,也許,改變,使其至少快一點點。
作爲一個企業的背景,我有10種不同的語言運行單獨的查詢,但在下面的代碼,我只提供一種語言,並把描述它周圍。
上安排執行超時是介於第五和第六的語言之間。
# used modules
import requests
import json
import pandas as pd
import MySQLdb
url = 'here comes URI to service API aggregation call'
headers = {'Integration-Key':'Key','Content-Type' : 'application/json'}
# the next one is different request for each of 10 languages, so 10 variables.
data_language = '''{Here comes a long long JSON request so API can aggregate it all }'''
# requesting data from API
# Again, 10 times for the next block
response = requests.post(url, headers=headers, data=data_en)
json_data = json.loads(response.text)
df_en = pd.DataFrame(json_data['results'])
# So on schedule, it time outs after 5th or 6th language
# creating merged table
df = pd.concat([df_en,df_sv,and_so_on],ignore_index=True)
db=MySQLdb.connect(host="host", user="user",passwd="pws",db="db")
df.to_sql(con=db, name='nps', if_exists='replace', flavor='mysql')
謝謝!我會盡力去做 - 希望它能加快速度。但是,我仍然需要確定如何確保腳本在此行之前執行並且沒有超時... –
哪一行導致超時? – thomaskeefe
所以我有這三條線各10種語言的 - 無法弄清楚如何通過循環做到這一點,所以是的,30重複lines.And它實際上導致對json.loads誤差()的一部分,所以我想它可能(),請問requests.post() –