API เจฆเฉเจ†เจฐเจพ เจเจชเจฒเฉ€เจŸเจฟเจŠเจก เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ

เจœเจพเจฃ เจชเจ›เจพเจฃ

เจเจชเจฒเฉ€เจŸเจฟเจŠเจก เจจเฉ‡ เจ‡เจธเจฆเฉ‡ เจ†เจธเจพเจจ เจ‡เจตเฉˆเจ‚เจŸ เจธเฉˆเจŸเจ…เจช เจ…เจคเฉ‡ เจตเจฟเจœเจผเฉ‚เจ…เจฒเจพเจˆเจœเจผเฉ‡เจธเจผเจจ เจฒเจšเจ•เจคเจพ เจฆเฉ‡ เจ•เจพเจฐเจจ เจ‡เฉฑเจ• เจ‰เจคเจชเจพเจฆ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจŸเฉ‚เจฒ เจตเจœเฉ‹เจ‚ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจขเฉฐเจ— เจจเจพเจฒ เจธเจพเจฌเจค เจ•เฉ€เจคเจพ เจนเฉˆ. เจ…เจคเฉ‡ เจ…เจ•เจธเจฐ เจคเฉเจนเจพเจกเฉ‡ เจ–เฉเจฆ เจฆเฉ‡ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฎเจพเจกเจฒ, เจ•เจฒเฉฑเจธเจŸเจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚, เจœเจพเจ‚ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ BI เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจกเฉˆเจธเจผเจฌเฉ‹เจฐเจก เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจเจฎเจชเจฒเฉ€เจŸเจฟเจŠเจก เจคเฉ‹เจ‚ เจ•เฉฑเจšเฉ‡ เจ‡เจตเฉˆเจ‚เจŸ เจกเฉ‡เจŸเจพ เจจเจพเจฒ เจนเฉ€ เจ…เจœเจฟเจนเฉ€ เจงเฉ‹เจ–เจพเจงเฉœเฉ€ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉˆเฅค เจ‡เจน เจฒเฉ‡เจ– เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฆเฉฑเจธเฉ‡เจ—เจพ เจ•เจฟ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจ—เจฟเจ†เจจ เจจเจพเจฒ เจ‡เจธ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจนเฉˆเฅค

เจชเฉ‚เจฐเจต-เจธเจผเจฐเจคเจพเจ‚

  1. เจเจชเจฒเฉ€เจŸเจฟเจŠเจก เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ‡เจตเฉˆเจ‚เจŸเจธ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ 'เจคเฉ‡ เจ…เฉฐเจ•เฉœเฉ‡ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจ
  2. เจชเจพเจˆเจฅเจจ เจธเจฅเจพเจชเจฟเจค เจนเฉˆ (เจฎเฉˆเจ‚ เจธเฉฐเจธเจ•เจฐเจฃ 3.8.3 เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เจฐ เจฐเจฟเจนเจพ เจนเจพเจ‚), เจœเจฟเจธ เจจเจพเจฒ เจธเฉฐเจญเจพเจตเฉ€ เจชเจพเจ เจ• เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจ‡เฉฑเจ• เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ

เจจเจฟเจฐเจฆเฉ‡เจธเจผ

เจ•เจฆเจฎ 1. API-เจ•เฉเฉฐเจœเฉ€ เจ…เจคเฉ‡ เจ—เฉเจชเจค-เจ•เฉเฉฐเจœเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ

เจกเจพเจŸเจพ เจ…เฉฑเจชเจฒเฉ‹เจก เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ เจ‡เฉฑเจ• API เจ•เฉเฉฐเจœเฉ€ เจ…เจคเฉ‡ เจ—เฉเจชเจค เจ•เฉเฉฐเจœเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจคเฉเจธเฉ€เจ‚ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจฎเจพเจฐเจ— เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐเจ•เฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉฑเจญ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

  1. "เจกเจพเจŸเจพ เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจ•เจฐเฉ‹" (เจธเจ•เฉเจฐเฉ€เจจ เจฆเฉ‡ เจนเฉ‡เจ เจพเจ‚ เจ–เฉฑเจฌเฉ‡ เจชเจพเจธเฉ‡ เจธเจฅเจฟเจค)
  2. เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจšเฉเจฃเฉ‹ เจœเจฟเจธ เจคเฉ‹เจ‚ เจกเฉ‡เจŸเจพ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจ‡เจธ 'เจคเฉ‡ เจœเจพเจ“
  3. เจ–เฉเฉฑเจฒเจฃ เจตเจพเจฒเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฎเฉ€เจจเฉ‚ เจตเจฟเฉฑเจš, "เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจธเฉˆเจŸเจฟเฉฐเจ—เจœเจผ" เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเฉ‹
  4. เจ…เจธเฉ€เจ‚ API-เจ•เฉเฉฐเจœเฉ€ เจ…เจคเฉ‡ เจ—เฉเจชเจค-เจ•เฉเฉฐเจœเฉ€ เจฆเฉ€เจ†เจ‚ เจธเจคเจฐเจพเจ‚ เจฒเฉฑเจญเจฆเฉ‡ เจนเจพเจ‚, เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจฅเจพเจ‚ เจคเฉ‡ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

เจ•เจฒเจฟเฉฑเจ• เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚, เจคเฉเจธเฉ€เจ‚ เจฒเจฟเฉฐเจ• เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจœเฉ‹ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
เจœเจฟเฉฑเจฅเฉ‡ $$$$$$ เจคเฉเจนเจพเจกเฉ€ เจธเฉฐเจธเจฅเจพ เจฆเจพ เจเจชเจฒเฉ€เจŸเจฟเจŠเจก เจฒเฉŒเจ—เจ‡เจจ เจนเฉˆ, ****** เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉฐเจฌเจฐ เจนเฉˆ

เจ•เจฆเจฎ 2: เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€เจ†เจ‚ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจฎเฉŒเจœเฉ‚เจฆเจ—เฉ€ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ

เจšเฉฐเจ—เฉ€ เจ–เจผเจฌเจฐ เจ‡เจน เจนเฉˆ เจ•เจฟ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เจน เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจกเจฟเจซเฉŒเจฒเจŸ เจœเจพเจ‚ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เฉ€เจคเฉ€เจ†เจ‚ เจนเจจ, เจชเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจชเฉ‚เจฐเฉ€ เจธเฉ‚เจšเฉ€ เจœเฉ‹ เจฎเฉˆเจ‚ เจฒเจฟเจ–เจฃ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจตเจฐเจคเฉ€ เจธเฉ€ (เจœเจฟเฉฑเจฅเฉ‡ เจ‰เจšเจฟเจค เจนเฉ‹เจตเฉ‡ เจฌเจฐเฉˆเจ•เจŸเจพเจ‚ เจตเจฟเฉฑเจš เจตเจฐเจœเจจ เจฆเจฐเจธเจพเจ เจ—เจ เจนเจจ):

  1. เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ (2.10.0) - เจกเฉ‡เจŸเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจเจชเฉ€เจ†เจˆ เจฆเฉเจ†เจฐเจพ เจฌเฉ‡เจจเจคเฉ€ เจญเฉ‡เจœเจฃเจพ
  2. เจชเจพเจ‚เจกเจพ (1.0.1) - json เจชเฉœเฉเจนเจจเจพ, เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจซเฉเจฐเฉ‡เจฎ เจฌเจฃเจพเจ‰เจฃเจพ เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฃเจพ
  3. zipfile - API เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจพเจชเจค เจ‡เฉฑเจ• เจชเฉเจฐเจพเจฒเฉ‡เจ– เจคเฉ‹เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจเจ•เจธเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเฉ‹
  4. gzip - .gz เจคเฉ‹เจ‚ json เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจจเจชเฉˆเจ• เจ•เจฐเจจเจพ
  5. os - เจ‡เฉฑเจ• เจ…เจจเจชเฉˆเจ• เจ•เฉ€เจคเฉ‡ เจชเฉเจฐเจพเจฒเฉ‡เจ– เจคเฉ‹เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ
  6. เจธเจฎเจพเจ‚ - เจตเจฟเจ•เจฒเจชเจฟเจ•, เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ‡ เจšเฉฑเจฒ เจฐเจนเฉ‡ เจธเจฎเฉ‡เจ‚ เจจเฉ‚เฉฐ เจฎเจพเจชเฉ‹
  7. tqdm - เจตเจฟเจ•เจฒเจชเจฟเจ•, เจซเจพเจˆเจฒ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจชเฉเจฐเจ—เจคเฉ€ เจฆเฉ€ เจ†เจธเจพเจจ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจฒเจˆ

เจ•เจฆเจฎ 3. เจ‡เฉฑเจ• เจกเจพเจŸเจพ เจฒเฉ‹เจกเจฟเฉฐเจ— เจธเจ•เฉเจฐเจฟเจชเจŸ เจฒเจฟเจ–เจฃเจพ

เจธเฉฐเจ•เฉ‡เจค: เจชเฉ‚เจฐเฉ€ เจกเจพเจ‰เจจเจฒเฉ‹เจก เจธเจ•เฉเจฐเจฟเจชเจŸ เจฒเฉ‡เจ– เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจนเฉˆ; เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจšเจพเจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจคเฉเจฐเฉฐเจค เจฒเฉˆ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจœเฉ‡ เจฒเฉ‹เฉœ เจชเจตเฉ‡ เจคเจพเจ‚ เจ•เจฆเจฎ-เจฆเจฐ-เจ•เจฆเจฎ เจธเจชเฉฑเจธเจผเจŸเฉ€เจ•เจฐเจจ เจฆเจพ เจนเจตเจพเจฒเจพ เจฆเฉ‡ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ•เจฆเจฎ 3.1. เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ†เจฏเจพเจค เจ•เฉ€เจคเจพ เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ

เจ…เจธเฉ€เจ‚ เจฆเฉ‚เจœเฉ‡ เจชเฉœเจพเจ… เจตเจฟเฉฑเจš เจธเฉ‚เจšเฉ€เจฌเฉฑเจง เจธเจพเจฐเฉ€เจ†เจ‚ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ†เจฏเจพเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

# ะ˜ะผะฟะพั€ั‚ ะฑะธะฑะปะธะพั‚ะตะบ
import requests
import pandas as pd
import zipfile
import gzip
import os
import time
import tqdm
from tqdm import tqdm

เจ•เจฆเจฎ 3.2เฅค เจเจชเจฒเฉ€เจŸเจฟเจŠเจก เจฒเจˆ เจ‡เฉฑเจ• เจฌเฉ‡เจจเจคเฉ€ เจœเจฎเฉเจนเจพเจ‚ เจ•เจฐเจพเจ‰เจฃเจพ

เจ†เจ‰ เจธเจ•เฉเจฐเจฟเจชเจŸ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจจเฉ‚เฉฐ เจ–เฉ‹เจœเฉ€เจ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ a เจตเจฟเฉฑเจš เจฒเจฟเจ–เฉ€เจเฅค

startdate เจ…เจคเฉ‡ enddate เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจ เจฆเฉ€ เจฎเจฟเจ†เจฆ เจฒเจˆ เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐ เจนเจจ เจ…เจคเฉ‡ เจเจชเจฒเฉ€เจŸเจฟเจŠเจก เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ เจญเฉ‡เจœเฉ€ เจ—เจˆ เจฌเฉ‡เจจเจคเฉ€ เจฆเฉ‡ เจŸเฉˆเจ•เจธเจŸ เจตเจฟเฉฑเจš เจฌเจฃเจพเจ เจ—เจ เจนเจจ; เจฎเจฟเจคเฉ€ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจคเฉเจธเฉ€เจ‚ เจฌเฉ‡เจจเจคเฉ€ เจตเจฟเฉฑเจš 'T' เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจฌเจฆเจฒ เจ•เฉ‡ เจ˜เฉฐเจŸเจพ เจตเฉ€ เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

api_key เจ…เจคเฉ‡ secret_key เจชเจนเจฟเจฒเฉ‡ เจชเฉœเจพเจ… เจตเจฟเฉฑเจš เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเฉ‡ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉˆ; เจธเฉเจฐเฉฑเจ–เจฟเจ† เจ•เจพเจฐเจจเจพเจ‚ เจ•เจฐเจ•เฉ‡, เจฎเฉˆเจ‚ เจ‡เฉฑเจฅเฉ‡ เจ†เจชเจฃเฉ€ เจ–เฉเจฆ เจฆเฉ€ เจฌเจœเจพเจ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจ•เฉเจฐเจฎ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจฆเจพ เจนเจพเจ‚เฅค

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. ะ—ะฐะฟั€ะพั ะพั‚ะฟั€ะฐะฒะปะตะฝ')

เจ•เจฆเจฎ 3.3. เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจชเฉเจฐเจพเจฒเฉ‡เจ– เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เฉ€เจคเจพ เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ

เจ…เจธเฉ€เจ‚ เจ†เจฐเจ•เจพเจˆเจต เจฒเจˆ เจ‡เฉฑเจ• เจจเจพเจฎ เจฒเฉˆ เจ•เฉ‡ เจ†เจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจซเจพเจˆเจฒ เจจเจพเจฎ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฆเฉ‡ เจนเจพเจ‚เฅค เจฎเฉ‡เจฐเฉ€ เจธเจนเฉ‚เจฒเจค เจฒเจˆ, เจฎเฉˆเจ‚ เจชเฉ€เจฐเฉ€เจ…เจก + เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจ‡เจน เจเจชเจฒเฉ€เจŸเจฟเจŠเจก เจกเฉ‡เจŸเจพ เจนเฉˆเฅค เจ…เฉฑเจ—เฉ‡, เจ…เจธเฉ€เจ‚ เจเจชเจฒเฉ€เจŸเจฟเจŠเจก เจคเฉ‹เจ‚ เจชเฉเจฐเจพเจชเจค เจนเฉ‹เจ เจœเจตเจพเจฌ เจจเฉ‚เฉฐ เจ†เจฐเจ•เจพเจˆเจต เจตเจฟเฉฑเจš เจฐเจฟเจ•เจพเจฐเจก เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

# ะกะบะฐั‡ะธะฒะฐะฝะธะต ะฐั€ั…ะธะฒะฐ ั ะดะฐะฝะฝั‹ะผะธ
filename = 'period_since'+startdate+'to'+enddate+'_amplitude_data'
with open(filename + '.zip', "wb") as code:
    code.write(response.content)
print('2. ะั€ั…ะธะฒ ั ั„ะฐะนะปะฐะผะธ ัƒัะฟะตัˆะฝะพ ัะบะฐั‡ะฐะฝ')  

เจ•เจฆเจฎ 3.4. เจคเฉเจนเจพเจกเฉ‡ เจ•เฉฐเจชเจฟเจŠเจŸเจฐ 'เจคเฉ‡ เจซเฉ‹เจฒเจกเจฐ เจคเฉ‹เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ

เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจเจ•เจธเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐเจจ เจฒเจˆ เจœเจผเจฟเจชเจซเจพเจˆเจฒ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฒเจพเจ—เฉ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจคเฉ€เจœเฉ€ เจฒเจพเจˆเจจ เจตเจฟเฉฑเจš, เจธเจพเจตเจงเจพเจจ เจฐเจนเฉ‹ เจ…เจคเฉ‡ เจ†เจชเจฃเจพ เจฎเจพเจฐเจ— เจฒเจฟเจ–เฉ‹ เจœเจฟเฉฑเจฅเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ เจเจ•เจธเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจตเจงเฉ‡เจฐเฉ‡ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจนเฉˆเฅค

# ะ˜ะทะฒะปะตั‡ะตะฝะธะต ั„ะฐะนะปะพะฒ ะฒ ะฟะฐะฟะบัƒ ะฝะฐ ะบะพะผะฟัŒัŽั‚ะตั€ะต
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. ะั€ั…ะธะฒ ั ั„ะฐะนะปะฐะผะธ ะธะทะฒะปะตั‡ะตะฝ ะธ ะทะฐะฟะธัะฐะฝ ะฒ ะฟะฐะฟะบัƒ ' + filename)

เจ•เจฆเจฎ 3.5เฅค json เจชเจฐเจฟเจตเจฐเจคเจจ

เจชเฉเจฐเจพเจฒเฉ‡เจ– เจคเฉ‹เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจเจ•เจธเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ json เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ .gz เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฃ เจ…เจคเฉ‡ เจ…เจ—เจฒเฉ‡ เจ•เฉฐเจฎ เจฒเจˆ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจซเฉเจฐเฉ‡เจฎ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจจเฉ‹เจŸ เจ•เจฐเฉ‹ เจ•เจฟ เจ‡เฉฑเจฅเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฎเจพเจฐเจ— เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจ†เจชเจฃเฉ‡ เจฒเจˆ เจฌเจฆเจฒเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจ…เจคเฉ‡ 000000 เจฆเฉ€ เจฌเจœเจพเจ เจเจฎเจชเจฒเฉ€เจŸเจฟเจŠเจก เจคเฉ‹เจ‚ เจ†เจชเจฃเจพ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉฐเจฌเจฐ เจฒเจฟเจ–เฉ‹ (เจœเจพเจ‚ เจฎเฉˆเจจเฉ‚เจ…เจฒเฉ€ เจ‰เจน เจฎเจพเจฐเจ— เจ–เฉ‹เจฒเฉเจนเฉ‹ เจœเจฟเฉฑเจฅเฉ‡ เจ†เจฐเจ•เจพเจˆเจต เจ•เฉฑเจขเจฟเจ† เจ—เจฟเจ† เจธเฉ€ เจ…เจคเฉ‡ เจ…เฉฐเจฆเจฐ เจซเฉ‹เจฒเจกเจฐ เจฆเจพ เจจเจพเจฎ เจฆเฉ‡เจ–เฉ‹)เฅค

เจ†เจฆเฉ‡เจธเจผ เจตเจฟเฉฑเจš:

เจ‡เฉฑเจ• เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจฒเจฟเจ–เจฃเจพ, เจ‡เฉฑเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจคเฉ‹เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ, เจ‡เฉฑเจ• เจ–เจพเจฒเฉ€ เจกเฉ‡เจŸเจพเจซเฉเจฐเฉ‡เจฎ เจฌเจฃเจพเจ‰เจฃเจพ, tqdm เจจเฉ‚เฉฐ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ time.sleep(1), เจฒเฉ‚เจช เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ…เจธเฉ€เจ‚ .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')

เจ•เจฆเจฎ 3.6เฅค เจเจ•เจธเจฒ เจตเจฟเฉฑเจš เจกเจพเจŸเจพเจซเฉเจฐเฉ‡เจฎ เจฒเจฟเจ–เจฃเจพ

เจเจ•เจธเจฒ เจฒเจˆ เจ…เฉฑเจชเจฒเฉ‹เจก เจ‡เฉฑเจฅเฉ‡ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ เจนเฉˆเฅค เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจตเจฟเฉฑเจš, เจชเจพเจˆเจฅเจจ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจจเจคเฉ€เจœเฉ‡ เจตเจพเจฒเฉ‡ เจกเฉ‡เจŸเจพ เจซเจฐเฉ‡เจฎ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจœเจพเจ‚ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฃเจพ เจตเจงเฉ‡เจฐเฉ‡ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค

เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจฅเฉ‡ เจกเฉ‡เจŸเจพ เจ…เจชเจฒเฉ‹เจก เจฎเจพเจฐเจ— เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจจเจพเจฒ เจฌเจฆเจฒเจฃเจพ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

# ะ—ะฐะฟะธัะฐั‚ัŒ ะฟะพะปัƒั‡ะตะฝะฝะพะน ั‚ะฐะฑะปะธั†ั‹ ะฒ Excel-ั„ะฐะนะป
amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False)
print('5. Dataframe ัƒัะฟะตัˆะฝะพ ะทะฐะฟะธัะฐะฝ ะฒ ั„ะฐะนะป ' + filename)

เจ•เจฆเจฎ 3.7. เจ…เจธเฉ€เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ‡ เจšเฉฑเจฒ เจฐเจนเฉ‡ เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚

เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจฌเฉ€ เจตเจฟเฉฑเจš เจฎเฉŒเจœเฉ‚เจฆเจพ เจธเจฎเฉ‡เจ‚ เจจเฉ‚เฉฐ เจฐเจฟเจ•เจพเจฐเจก เจ•เจฐเจจเจพ, เจ…เฉฐเจคเจฐ เจ…เจคเฉ‡ เจฎเจฟเฉฐเจŸเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจจเจพ, เจ•เฉเฉฑเจฒ เจฎเจฟเฉฐเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจจเจพเฅค เจ‡เจน เจ†เจ–เจฐเฉ€ เจ•เจฆเจฎ เจนเฉˆเฅค

b = time.time()
diff = b-a
minutes = diff//60
print('ะ’ั‹ะฟะพะปะฝะตะฝะธะต ะบะพะดะฐ ะทะฐะฝัะปะพ: {:.0f} ะผะธะฝัƒั‚(ั‹)'.format( minutes))

เจธเจฟเฉฑเจŸเจพ

เจคเฉเจธเฉ€เจ‚ เจŸเฉ‡เจฌเจฒ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจเจชเจฒเฉ€เจŸเจฟเจŠเจก_เจกเจพเจŸเจพเจซเฉเจฐเฉ‡เจฎ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจ•เฉ‡ เจ‡เจธ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเจฟเจธ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจธเฉ€เฅค เจ‡เจธ เจตเจฟเฉฑเจš เจฒเจ—เจญเจ— 50 เจ•เจพเจฒเจฎ เจนเฉ‹เจฃเจ—เฉ‡, เจœเจฟเจจเฉเจนเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ 80% เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจคเฉเจธเฉ€เจ‚ เจตเจฐเจคเฉ‹เจ—เฉ‡: event_type - เจ‡เจตเฉˆเจ‚เจŸ เจจเจพเจฎ, เจ‡เจตเฉˆเจ‚เจŸ_เจชเฉเจฐเจพเจชเจฐเจŸเฉ€เจœเจผ - เจ‡เจตเฉˆเจ‚เจŸ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ, เจ‡เจตเฉˆเจ‚เจŸ_เจŸเจพเจˆเจฎ - เจ‡เจตเฉˆเจ‚เจŸ เจธเจฎเจพเจ‚, uuid - เจ•เจฒเจพเจ‡เฉฐเจŸ เจ†เจˆเจกเฉ€, user_properties - เจ•เจฒเจพเจ‡เฉฐเจŸ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ เจ‰เจนเจจเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค . เจ…เจคเฉ‡ เจœเจฆเฉ‹เจ‚ เจเจ‚เจชเจฒเฉ€เจŸเจฟเจŠเจก เจกเฉˆเจธเจผเจฌเฉ‹เจฐเจกเจพเจ‚ เจฆเฉ‡ เจธเฉ‚เจšเจ•เจพเจ‚ เจจเจพเจฒ เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจ—เจฃเจจเจพเจตเจพเจ‚ เจฆเฉ‡ เจ…เฉฐเจ•เฉœเจฟเจ†เจ‚ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจจเจนเฉ€เจ‚ เจญเฉเฉฑเจฒเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจธเจฟเจธเจŸเจฎ เจตเจฟเจฒเฉฑเจ–เจฃ เจ•เจฒเจพเจ‡เฉฐเจŸเจธ/เจซเจจเจฒเจพเจ‚ เจ†เจฆเจฟ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจจ เจฒเจˆ เจ†เจชเจฃเฉ€ เจ–เฉเจฆ เจฆเฉ€ เจตเจฟเจงเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจเจชเจฒเฉ€เจŸเจฟเจŠเจก เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

เจคเฉเจนเจพเจกเฉ‡ เจงเจฟเจ†เจจ เจฒเจˆ เจงเฉฐเจจเจตเจพเจฆ! เจนเฉเจฃ เจคเฉเจธเฉ€เจ‚ เจ•เฉฑเจšเฉ‡ เจ‡เจตเฉˆเจ‚เจŸ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจเจชเจฒเฉ€เจŸเจฟเจŠเจก เจตเจฟเฉฑเจš เจ…เจชเจฒเฉ‹เจก เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ•เฉฐเจฎ เจตเจฟเฉฑเจš เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจตเจฐเจค เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจชเฉ‚เจฐเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ:

# ะ˜ะผะฟะพั€ั‚ ะฑะธะฑะปะธะพั‚ะตะบ
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))

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹