áááá«ááºáž
Amplitude ááẠáááºážá ááœááºáá°áá±á¬ ááŒá
áºáááºááᯠá
áá
áºááá·áºááœááºážááŒááºážááŸáá·áº á¡ááŒááºáá¯á¶áá±á¬áºááŒááºáž ááŒá±á¬ááºážááœááºááŒááºááœááºááŒá±á¬áá·áº áá¯ááºáá¯ááºááœá²ááŒááºážá
áááºááŒá¬ááŸá¯áááááá¬áá
áºáá¯á¡ááŒá
Ạáá±á¬ááºážá
áœá¬áááºáá±ááŒáá²á·áááºá ááá¯á·á¡ááŒáẠááá·áºááá¯ááºááá¯ááºááá·áºááœááºážáá±á¬áºááŒááŸá¯áá¯á¶á
á¶á á¡á
á¯á¡áá±ážá¡áá¯á¶ážááŒá¯áá°áá»á¬áž ááá¯á·ááá¯áẠá¡ááŒá¬ážáá±á¬ BI á
áá
áºááœáẠáááºááŸáºáá¯ááºáá
áºáᯠáááºáá±á¬ááºááẠááá¯á¡ááºáá«áááºá Amplitude á០á¡ááŒááºážáá»ááºážááŒá
áºáááºáá±áá¬ááŒáá·áº ááá¯ááá¯á·áá±á¬ááááºáááºááŸá¯áá
áºáá¯ááᯠáá¯ááºáá±á¬ááºáááºáᬠááŒá
áºááá¯ááºáááºá á€áá±á¬ááºážáá«ážááœáẠáááá¯ááááºážáááºážááá¯áá¯á á¡áááºážáá¯á¶ážááŒáá·áº á€áá±áá¬ááᯠáááºááá¯á·ááá°ááááºááᯠááŒá±á¬ááŒáá«áááºá
ááá¯á¡ááºáá»ááºáá»á¬áž
- ááŒá áºáááºáá»á¬ážááᯠááŸááºáááºá áœá¬ á á®á ááºáááºááŸááºáá¬ážááŒá®áž áááºážááá¯á·ááœáẠá á¬áááºážá¡ááºážáá»á¬ážááᯠá á¯áá±á¬ááºážáá¬ážááá·áº Amplitude ááŸá ááá±á¬áá»ááºáá áºáá¯
- Python ááᯠááá·áºááœááºážáá¬ážááẠ(áá»áœááºáá±á¬áºááẠáá¬ážááŸááºáž 3.8.3 ááœáẠá¡áá¯ááºáá¯ááºáá±áááº)á ááŒá áºááá¯ááºáá»á±ááŸááá±á¬ á á¬áááºáá°ááẠá¡áááºážáá¯á¶áž á¡ááŒá±áá¶á¡ááá·áºááŒáá·áº á¡áá¯ááºáá¯ááºááá¯ááºáááº
ááœáŸááºááŒá¬ážáá»ááº
á¡ááá·áº 1. API-áá®ážááŸáá·áº áá»áŸáá¯á·ááŸááºáá±á¬á· ááá°ááŒááºážá
áá±áá¬ááᯠá¡ááºáá¯ááºáá¯ááºáááºá áááºááẠááááá¯á¶áž API áá±á¬á·ááŸáá·áº áá»áŸáá¯á·ááŸááºáá±á¬á·ááᯠááá°ááẠááá¯á¡ááºáááºá
á¡á±á¬ááºáá«áááºážááŒá±á¬ááºážá¡ááá¯ááºáž ááá¯ááºááŒááºážááŒáá·áº áááºážááá¯á·ááᯠáááºááŸá¬ááœá±á·ááá¯ááºáááº-
- âáá±áá¬ááᯠá á®áá¶áá«â (á ááááºá áááºáááºá¡á±á¬ááºááŒá±ááœáẠáááºááŸááááº)
- áá±áá¬áá±á«ááºážáá¯ááºáá¯ááºááá·áº ááá¯áá»ááºáá±á¬ááá±á¬áá»ááºááᯠááœá±ážááŒá®áž áááºážááá¯á·ááœá¬ážáá«á
- ááœáá·áºáá¬áá±á¬ ááá±á¬áá»ááºáá®áá°ážááœáẠâááá±á¬áá»ááºáááºáááºáá»á¬ážâ ááᯠááœá±ážáá«
- API-áá®ážááŸáá·áº áá»áŸáá¯á·ááŸááºáá±á¬á·á á¬ááŒá±á¬ááºážáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á·ááŸá¬ááœá±ááœá±á·ááŸáááŒá®áž áááºážááá¯á·ááᯠáá°ážáá°áᬠáá¯á¶ááŒá¯á¶áá±á¬áá±áá¬ááœáẠááááºážáááºážáá«á
ááŸáááºá
áá¬áááá¯áá²á áá±áá°áá»á¡á¬ážááŒáá·áº á€áá¯á¶ááá¹áá¬ááºááŸááá±á¬ ááá·áºááºááᯠáááºááá¯ááºáá¬ááá¯ááºáááº-
analytics.amplitude.com/$$$$$$$/manage/project/******/áááºáááºáá»á¬ážá
$$$$$$ ááẠááá·áºá¡ááœá²á·á¡á
ááºážá ááá¬ááááºáá±á¬ááºááá·áºáá±áá¬ááŒá
áºááŒá®áž ****** ááẠááá±á¬áá»ááºáá¶áá«ááºááŒá
áºáááºá
á¡ááá·áº 2- ááá¯á¡ááºáá±á¬ á á¬ááŒáá·áºááá¯ááºáá»á¬áž ááŸááá±ááŒá±á¬ááºáž á á áºáá±ážááŒááºážá
ááááºážáá±á¬ááºážááŸá¬ ááá·áºááœáẠá€á á¬ááŒáá·áºááá¯ááºáá»á¬ážááᯠáá°áááºážá¡ááá¯ááºáž ááá·áºááœááºážáá¬ážááŒá®áž ááá¯á·ááá¯áẠáá±á«ááºážáá¯ááºáá¯ááºáá¬ážáááºááŸá¬ áá±áá»á¬áá±á«ááºáá®ážáá«áž ááŸááá±ááŒá®ááŒá áºáá±á¬áºáááºáž á á áºáá±ážááẠááá¯á¡ááºáá«áááºá á á¬áá±ážáá»áááºá áá»áœááºáá±á¬áºá¡áá¯á¶ážááŒá¯áá²á·ááá·áº á á¬ááŒáá·áºááá¯ááºáá»á¬ážá á¬áááºáž á¡ááŒáá·áºá¡á á¯á¶ (ááœááºážá¡ááœááºážááŸááá¬ážááŸááºážáá»á¬ážááᯠááá·áºáá»á±á¬áºááá·áºáá±áá¬ááœáẠááœáŸááºááŒáá¬ážáááº)
- áá±á¬ááºážááá¯áá»ááºáá»á¬áž (2.10.0) - áá±áá¬áááºáá¶ááẠapi ááŸáááá·áº áá±á¬ááºážááá¯áá»ááºáá áºáᯠáá±ážááá¯á·ááŒááºážá
- pandas (1.0.1) - json ááá¯áááºááŒááºážá áá±áá¬áá±á¬ááºáá áºáá¯áááºáá®ážááŒá®ážáá±á¬áẠááá¯ááºáá áºáá¯ááá¯á· á á¬áá±ážáá«á
- zipfile - API ááŸáááá·áºáááºáá¶áááŸááá±á¬ archive ááŸááá¯ááºáá»á¬ážááá¯áá¯ááºáá°áá«á
- gzip - .gz á០json ááá¯ááºáá»á¬ážááᯠáá¯ááºááá¯ážááŒááºáž
- os - unpacked archive á០ááá¯ááºáá»á¬ážá á¬áááºážááᯠááá°ááŒááºážá
- á¡áá»ááẠ- á áááºááŒáá¯ááºááœá±ážáá»ááºáá«á script ááááºáááºáá»áááºááá¯ááá¯ááºážáá¬áá«á
- tqdm - ááá¯ááºáá¯ááºáá±á¬ááºááŒááºážááá¯ážáááºááŸá¯ááᯠááœááºáá°á áœá¬ á á±á¬áá·áºááŒáá·áºáááºá¡ááœáẠááœá±ážáá»ááºááá¯ááºáááºá
á¡ááá·áº 3. áá±áá¬áááºááŒááºáž script ááá¯áá±ážááŒááºážá
á¡ááááºá¡ááŒáœááº- á¡ááŒáá·áºá¡á á¯á¶áá±á«ááºážáá¯áẠscript ááẠáá±á¬ááºážáá«ážáá¡áá¯á¶ážááœááºááŒá áºáááºá áááºááá¹áááŸááá«á áááºážááᯠáááºáá»ááºáá»ááºážáá°ááá¯ááºááŒá®áž ááá¯á¡ááºáá«á á¡ááá·áºááá·áºááŸááºážááŒáá»ááºáá»á¬ážááᯠááá¯ážáá¬ážááá¯ááºáá«áááºá
á¡ááá·áº á.áá á á¬ááŒáá·áºááá¯ááºáá»á¬áž áááºááœááºážááŒááºážá
áá¯áááá¡ááá·áºááœáẠáá±á¬áºááŒáá¬ážáá±á¬ á á¬ááŒáá·áºááá¯ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá»áœááºá¯ááºááá¯á· áááºááœááºážáá«áááºá
# ÐЌпПÑÑ Ð±ÐžÐ±Ð»ÐžÐŸÑек
import requests
import pandas as pd
import zipfile
import gzip
import os
import time
import tqdm
from tqdm import tqdm
á¡ááá·áº á.áá Amplitude ááá¯á· áá±á¬ááºážááá¯áá»áẠáááºááœááºážááŒááºážá
script execution áá¡á ááá¯ááŸá¬ááœá±ááŒá®áž variable a ááá¯á·áá±ážááá¯ááºááŒáá«á áá¯á·á
á áááºáááºá áœá²ááŸáá·áº á¡áá¯á¶ážáááºá áœá²ááẠáá±áá¬áá±á«ááºážáá¯ááºáá¯ááºááá·áºáá¬áá¡ááœáẠáá¬áááºááŸáááŒá®áž Amplitude áá¬áá¬áᶠáá±ážááá¯á·áá¬ážáá±á¬ áá±á¬ááºážááá¯áá»ááºá á á¬áá¬ážááœáẠááá·áºááœááºážáá¬ážáááºá áááºá áœá²á¡ááŒááºá áá±á¬ááºážááá¯áá»ááºááœáẠ'T' ááŒá®ážáá±á¬áẠáááºááá¯ážááᯠááŒá±á¬ááºážáá²ááŒááºážááŒáá·áº áá¬áá®ááá¯áááºáž áááºáááºááŸááºááá¯ááºáááºá
api_key ááŸáá·áº secret_key ááẠáááá¡ááá·áºááœááºáááŸááá±á¬áááºááá¯ážáá»á¬ážááŸáá·áº ááá¯ááºáá®áááºá áá¯á¶ááŒá¯á¶áá±ážá¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬ážá¡ááœááºá áá»áœááºá¯ááºáááá¯ááºááá¯ááºá¡á á¬áž á€áá±áá¬ááœáẠáá»áááºáž sequence áá»á¬ážááᯠáááºááŸááºáá±ážáá«áááºá
a = time.time()
# ÐаÑаЌеÑÑÑ ÐœÐ°ÑалÑМПй О кПМеÑМПй ЎаÑÑ
startdate = '20200627'
enddate = '20200628'
api_key = 'kldfg844203rkwekfjs9234'
secret_key = '094tfjdsfmw93mxwfek'
# ÐÑпÑавлеМОе запÑПÑа в Amplitude
response = requests.get('https://amplitude.com/api/2/export?start='+startdate+'T0&end='+enddate+'T0', auth = (api_key, secret_key))
print('1. ÐапÑÐŸÑ ÐŸÑпÑавлеМ')
á¡ááá·áº á.áá áá±áá¬ááŒáá·áº ááŸááºáááºážáá áºáá¯ááᯠáá±á«ááºážáá¯ááºáá¯ááºáá±áááºá
áá»áœááºá¯ááºááá¯á·ááẠarchive á¡ááœááºá¡áááºáá áºáá¯áá±á«áºáá¬ááŒá®áž áááºážááᯠfilename variable ááœááºáá±ážáá«á áá»áœááºá¯ááºá¡áááºááŒá±á á±áááºá¡ááœááºá á€á¡áá¬ááẠááá¬ááá±áá¬ááŒá áºááŒá±á¬ááºáž áá¬á + ááœáŸááºááŒáá«áááºá ááá¯á·áá±á¬ááºá áá»áœááºá¯ááºááá¯á·ááẠAmplitude á០áááŸááá¬áá±á¬ áá¯á¶á·ááŒááºááŸá¯ááᯠáá±á¬áºááœááºážááœáẠááŸááºáááºážáááºáá«áááºá
# СкаÑОваМОе аÑÑ
Ова Ñ ÐŽÐ°ÐœÐœÑЌО
filename = 'period_since'+startdate+'to'+enddate+'_amplitude_data'
with open(filename + '.zip', "wb") as code:
code.write(response.content)
print('2. ÐÑÑ
Ов Ñ ÑайлаЌО ÑÑпеÑМП ÑкаÑаМ')
á¡ááá·áº á.áá ááá·áºááœááºáá»á°áá¬ááŸá ááá¯áá«áá áºáá¯á០ááá¯ááºáá»á¬ážááᯠááŒááºáááºááá°ááŒááºážá
ááá¯ááºáá»á¬ážááᯠááŒááºáá¬ááœáẠáá°áá®ááẠzipfile library ááẠá áááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá ááááá á¬ááŒá±á¬ááºážááœááºá ááá·áºáááºážááŒá±á¬ááºážááᯠáá¯ááºáá°ááẠááá¯ááá¯á¡áááºááŒá±ááá·áºáá±áá¬ááᯠááá¯áá áá¯ááºááŸáá·áº áá»áá±ážáá«á
# ÐзвлеÑеМОе ÑайлПв в Ð¿Ð°Ð¿ÐºÑ ÐœÐ° кПЌпÑÑÑеÑе
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. ÐÑÑ
Ов Ñ ÑайлаЌО ОзвлеÑеМ О запОÑаМ в Ð¿Ð°Ð¿ÐºÑ ' + filename)
á¡ááá·áº á.á á json ááŒá±á¬ááºážáá²ááŒááºážá
ááá¯ááºáá»á¬ážááᯠáá±á¬áºááœááºážááá¯ááºá០áá¯ááºáá°ááŒá®ážáá±á¬ááºá áááºááẠjson ááá¯ááºáá»á¬ážááᯠ.gz áá±á¬áºáááºá¡ááŒá ẠááŒá±á¬ááºážááŒá®áž áá±á¬ááºáááºá¡áá¯ááºá¡ááœáẠáá±áá¬áá±á¬ááºáá áºáá¯á¡ááŒá Ạáá±ážááẠááá¯á¡ááºáááºá
á€áá±áá¬ááœáẠáááºááẠááá·áºááá¯ááºááá¯ááºáááºážááŒá±á¬ááºážá¡ááŒá ẠááŒá±á¬ááºážáá²ááẠááá¯á¡ááºááŒá®áž 000000 á¡á á¬áž ááá·áºááá±á¬áá»ááºáá¶áá«ááºááᯠAmplitude á០áá±ážáá« (ááá¯á·ááá¯áẠáá±á¬áºááœááºážááᯠáá¯ááºáá°áá¬ážááá·áº áááºážááŒá±á¬ááºážááᯠááá¯ááºááá¯ááºááœáá·áºááŒá®áž á¡ááœááºážááŸá ááá¯ááºááœá²á¡áááºááá¯ááŒáá·áºáá«)á
á áá áºááá»ááŒá áºáááº:
ááááºážááŸááºáá áºáá¯ááá¯á· áááºážááœáŸááºáá áºáá¯áá±ážááŒááºážá áááºážááœáŸááºáá áºáá¯á០ááá¯ááºáá»á¬ážá á¬áááºážááá°ááŒááºážá ááá¬áá±áá¬áá±á¬ááºáá áºáá¯áááºáá®ážááŒááºážá tqdm ááŸááºáááºá áœá¬á¡áá¯ááºáá¯ááºáááºá¡ááœáẠtime.sleep(1)á loop á¡ááœááºážááœáẠáá»áœááºá¯ááºááá¯á·ááẠ.gz ááá¯ááºáá»á¬ážááá¯ááœáá·áºááŒá®áž json ááá¯áááºáááºááŸáá·áº ááŒáá·áºá áœááºáááºá¡ááœáẠáááºáá«áá»á¬ážááá¯áá»ááºáá»ááºážá¡áá¯á¶ážááŒá¯áá«á áá±ážáá¬ážáá±á¬áá±áá¬áá±á¬ááºá
# ÐÑеПбÑазПваМОе json к ПбÑÑÐœÐŸÐŒÑ ÑаблОÑÐœÐŸÐŒÑ ÑПÑЌаÑÑ
directory = 'C:\Users\...\'+filename+'# ÐÑеПбÑазПваМОе json к ПбÑÑÐœÐŸÐŒÑ ÑаблОÑÐœÐŸÐŒÑ ÑПÑЌаÑÑ
directory = 'C:\Users\...\'+filename+'\000000'
files = os.listdir(directory)
amplitude_dataframe = pd.DataFrame()
print('ÐÑПгÑеÑÑ ÐŸÐ±ÑабПÑкО ÑайлПв:')
time.sleep(1)
for i in tqdm(files):
with gzip.open(directory + '\' + i) as f:
add = pd.read_json(f, lines = 'True')
amplitude_dataframe = pd.concat([amplitude_dataframe, add])
time.sleep(1)
print('4. JSON ÑÐ°Ð¹Ð»Ñ ÐžÐ· аÑÑ
Ова ÑÑпеÑМП пÑеПбÑÐ°Ð·ÐŸÐ²Ð°ÐœÑ Ðž запОÑÐ°ÐœÑ Ð² dataframe')
0000'
files = os.listdir(directory)
amplitude_dataframe = pd.DataFrame()
print('ÐÑПгÑеÑÑ ÐŸÐ±ÑабПÑкО ÑайлПв:')
time.sleep(1)
for i in tqdm(files):
with gzip.open(directory + '\' + i) as f:
add = pd.read_json(f, lines = 'True')
amplitude_dataframe = pd.concat([amplitude_dataframe, add])
time.sleep(1)
print('4. JSON ÑÐ°Ð¹Ð»Ñ ÐžÐ· аÑÑ
Ова ÑÑпеÑМП пÑеПбÑÐ°Ð·ÐŸÐ²Ð°ÐœÑ Ðž запОÑÐ°ÐœÑ Ð² dataframe')
á¡ááá·áº á.áá áá±áá¬áá±á¬ááºááᯠexcel ááœááºáá±ážááŒááºážá
Excel ááá¯á· á¡ááºáá¯ááºáááºááŒááºážááẠá€áá±áá¬ááœáẠááá°áá¬áá áºáá¯áá»áŸáá¬ááŒá áºáááºá áá»á¬ážá áœá¬áá±á¬ááá á¹á áá»á¬ážááœááºá python á¡ááœááºážááŸáááŸááá¬áá±á¬ data frame ááŸáá·áºá¡áá¯ááºáá¯ááºááẠááá¯á·ááá¯áẠdata ááᯠstorage ááœááºááá·áºáááºááá¯ááá¯á¡áááºááŒá±áááºá
á€áá±áá¬ááœáẠáá±áá¬á¡ááºáá¯ááºáááºážááŒá±á¬ááºážááᯠááá·áºááá¯ááºááá¯ááºááŒáá·áº á¡á á¬ážááá¯ážáááºáááºáž ááá¯á¡ááºáááºááŒá áºáááºá
# ÐапОÑаÑÑ Ð¿ÐŸÐ»ÑÑеММПй ÑаблОÑÑ Ð² Excel-Ñайл
amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False)
print('5. Dataframe ÑÑпеÑМП запОÑаМ в Ñайл ' + filename)
á¡ááá·áº á.áá áá»áœááºá¯ááºááá¯á·ááẠáá¬ááºááœáŸááºážááááºáááºáá»áááºááᯠáá±ááœááºáááºá
variable b ááœáẠáááºááŸáá¡áá»áááºááᯠááŸááºáááºážáááºááŒááºážá ááœá¬ááŒá¬ážáá»ááºááŸáá·áº áááá áºá¡áá±á¡ááœááºááᯠááœááºáá»ááºááŒááºážá á á¯á á¯áá±á«ááºáž áááá áºáá»á¬ážááᯠááŒáááŒááºážá áá«á áá±á¬ááºáá¯á¶ážá¡ááá·áºáá«á
b = time.time()
diff = b-a
minutes = diff//60
print('ÐÑпПлМеМОе кПЎа заМÑлП: {:.0f} ЌОМÑÑ(Ñ)'.format( minutes))
áá±á¬ááºáá»ááº
áá±áá¬ááá¯áá±ážáá¬ážáá¬ážááá·áº amplitude_dataframe variable ááá¯áá±á«áºááá¯ááŒááºážááŒáá·áº áááºááẠááá¬ážááá¯áá±á«áºááá¯ááá¯ááºááŒá®áž áááºážááŸáá·áºá áááºáá¯ááºáá±á¬ááºááá¯ááºáá«áááºá áááºážááœáẠáá±á¬áºáᶠ50 ááá·áºááŸááááºááŒá áºááŒá®áž áááºážááá¯á·á¡ááẠ80% ááœáẠáááºá¡áá¯á¶ážááŒá¯ááá·áºááá á¹á áá»á¬áž- event_type - event name, event_properties - event parameters, event_time - event time, uuid - client id, user_properties - client parametersá ááẠáááºážááá¯á·ááŸáá·áº ááááá¯á¶ážá áááºáá¯ááºáá±á¬ááºááá·áºááẠ. Amplitude dashboards áá»á¬ážá០ááœáŸááºááááºážáá»á¬ážááŸáá·áº ááá·áºááá¯ááºááá¯ááºááœááºáá»ááºááŸá¯áá»á¬ážá០ááááºážááááºážáá»á¬ážááᯠááŸáá¯ááºážááŸááºáá±á¬á¡áá«á á áá áºááẠáá°ážááŒá¬ážáá±á¬ clients/funnels á áááºááá¯á·ááᯠááœááºáá»ááºáááºá¡ááœáẠáááºážáááá¯ááºááá¯ááºáááºážá áá áºááᯠá¡áá¯á¶ážááŒá¯áá¬ážááŒá±á¬ááºážá áááºážááá¯ááá¯ááºáá±á¬ááºáá®á áááºááẠAmplitude documentation ááᯠáá±áá»á¬áááºááá·áºáááºá
ááá¯á áá¯ááºáá²á·á¡ááœááºáá»á±ážáá°ážáááºáá«áááº! ááᯠáááºááẠá¡ááŒááºážáá áºááá·áºáá±áá¬ááᯠAmplitude ááá¯á· á¡ááºáá¯ááºáá¯ááºááá¯ááºááŒá®áž áááºážááᯠááá·áºáá¯ááºáááºážááœáẠá¡ááŒáá·áºá¡áá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá
áá¬ááºááœáŸááºážáá áºáá¯áá¯á¶áž-
# ÐЌпПÑÑ Ð±ÐžÐ±Ð»ÐžÐŸÑек
import requests
import pandas as pd
import zipfile
import gzip
import os
import time
import tqdm
from tqdm import tqdm
a = time.time()
# ÐаÑаЌеÑÑÑ ÐœÐ°ÑалÑМПй О кПМеÑМПй ЎаÑÑ
startdate = '20200627'
enddate = '20200628'
api_key = 'd988fddd7cfc0a8a'
secret_key = 'da05cf1aeb3a361a61'
# ÐÑпÑавлеМОе запÑПÑа в Amplitude
response = requests.get('https://amplitude.com/api/2/export?start='+startdate+'T0&end='+enddate+'T0', auth = (api_key, secret_key))
print('1. ÐапÑÐŸÑ ÐŸÑпÑавлеМ')
# СкаÑОваМОе аÑÑ
Ова Ñ ÐŽÐ°ÐœÐœÑЌО
filename = 'period_since'+startdate+'to'+enddate+'_amplitude_data'
with open(filename + '.zip', "wb") as code:
code.write(response.content)
print('2. ÐÑÑ
Ов Ñ ÑайлаЌО ÑÑпеÑМП ÑкаÑаМ')
# ÐзвлеÑеМОе ÑайлПв в Ð¿Ð°Ð¿ÐºÑ ÐœÐ° кПЌпÑÑÑеÑе
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. ÐÑÑ
Ов Ñ ÑайлаЌО ОзвлеÑеМ О запОÑаМ в Ð¿Ð°Ð¿ÐºÑ ' + filename)
# ÐÑеПбÑазПваМОе json к ПбÑÑÐœÐŸÐŒÑ ÑаблОÑÐœÐŸÐŒÑ ÑПÑЌаÑÑ
directory = 'C:\Users\...\'+filename+'# ÐЌпПÑÑ Ð±ÐžÐ±Ð»ÐžÐŸÑек
import requests
import pandas as pd
import zipfile
import gzip
import os
import time
import tqdm
from tqdm import tqdm
a = time.time()
# ÐаÑаЌеÑÑÑ ÐœÐ°ÑалÑМПй О кПМеÑМПй ЎаÑÑ
startdate = '20200627'
enddate = '20200628'
api_key = 'd988fddd7cfc0a8a'
secret_key = 'da05cf1aeb3a361a61'
# ÐÑпÑавлеМОе запÑПÑа в Amplitude
response = requests.get('https://amplitude.com/api/2/export?start='+startdate+'T0&end='+enddate+'T0', auth = (api_key, secret_key))
print('1. ÐапÑÐŸÑ ÐŸÑпÑавлеМ')
# СкаÑОваМОе аÑÑ
Ова Ñ ÐŽÐ°ÐœÐœÑЌО
filename = 'period_since'+startdate+'to'+enddate+'_amplitude_data'
with open(filename + '.zip', "wb") as code:
code.write(response.content)
print('2. ÐÑÑ
Ов Ñ ÑайлаЌО ÑÑпеÑМП ÑкаÑаМ')
# ÐзвлеÑеМОе ÑайлПв в Ð¿Ð°Ð¿ÐºÑ ÐœÐ° кПЌпÑÑÑеÑе
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. ÐÑÑ
Ов Ñ ÑайлаЌО ОзвлеÑеМ О запОÑаМ в Ð¿Ð°Ð¿ÐºÑ ' + filename)
# ÐÑеПбÑазПваМОе json к ПбÑÑÐœÐŸÐŒÑ ÑаблОÑÐœÐŸÐŒÑ ÑПÑЌаÑÑ
directory = 'C:\Users\...\'+filename+'\000000'
files = os.listdir(directory)
amplitude_dataframe = pd.DataFrame()
print('ÐÑПгÑеÑÑ ÐŸÐ±ÑабПÑкО ÑайлПв:')
time.sleep(1)
for i in tqdm(files):
with gzip.open(directory + '\' + i) as f:
add = pd.read_json(f, lines = 'True')
amplitude_dataframe = pd.concat([amplitude_dataframe, add])
time.sleep(1)
print('4. JSON ÑÐ°Ð¹Ð»Ñ ÐžÐ· аÑÑ
Ова ÑÑпеÑМП пÑеПбÑÐ°Ð·ÐŸÐ²Ð°ÐœÑ Ðž запОÑÐ°ÐœÑ Ð² dataframe')
# ÐапОÑаÑÑ Ð¿ÐŸÐ»ÑÑеММПй ÑаблОÑÑ Ð² Excel-Ñайл
amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False)
print('5. Dataframe ÑÑпеÑМП запОÑаМ в Ñайл ' + filename)
b = time.time()
diff = b-a
minutes = diff//60
print('ÐÑпПлМеМОе кПЎа заМÑлП: {:.0f} ЌОМÑÑ(Ñ)'.format( minutes))
0000'
files = os.listdir(directory)
amplitude_dataframe = pd.DataFrame()
print('ÐÑПгÑеÑÑ ÐŸÐ±ÑабПÑкО ÑайлПв:')
time.sleep(1)
for i in tqdm(files):
with gzip.open(directory + '\' + i) as f:
add = pd.read_json(f, lines = 'True')
amplitude_dataframe = pd.concat([amplitude_dataframe, add])
time.sleep(1)
print('4. JSON ÑÐ°Ð¹Ð»Ñ ÐžÐ· аÑÑ
Ова ÑÑпеÑМП пÑеПбÑÐ°Ð·ÐŸÐ²Ð°ÐœÑ Ðž запОÑÐ°ÐœÑ Ð² dataframe')
# ÐапОÑаÑÑ Ð¿ÐŸÐ»ÑÑеММПй ÑаблОÑÑ Ð² Excel-Ñайл
amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False)
print('5. Dataframe ÑÑпеÑМП запОÑаМ в Ñайл ' + filename)
b = time.time()
diff = b-a
minutes = diff//60
print('ÐÑпПлМеМОе кПЎа заМÑлП: {:.0f} ЌОМÑÑ(Ñ)'.format( minutes))
source: www.habr.com