рдПрдХ рд╕рд╛рде рдХрдИ рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рд╡рд┐рднрд┐рдиреНрди рдЦрд╛рддреЛрдВ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдореЗрдВ рдмрд╣реБрдд рд╕реА рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЬрд▓реНрджреА рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм 10 рд╕реЗ рдЕрдзрд┐рдХ рдЧреНрд░рд╛рд╣рдХ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдмрд╛рдЬрд╛рд░ рдХреЗ рдкрд╛рд╕ рдЕрдм рд▓рдЧрд╛рддрд╛рд░ рдЖрдБрдХрдбрд╝реЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рд░рд╛рд╕реНрддрд╛ рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдПрдкреАрдЖрдИ рдФрд░ рдЕрдЬрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдЦрд╛рддреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдБрдЧрд╛ред
рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░, рд╣рдо Yandex.Direct API рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рд╡рд┐рдЬреНрдЮрд╛рдкрди рдЕрднрд┐рдпрд╛рдиреЛрдВ рдкрд░ рдЖрдВрдХрдбрд╝реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред
рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:
- Yandex Direct API рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- рдПрдХ рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦреЗрдВ
- DataFrame рдореЗрдВ рдбреЗрдЯрд╛ рдЖрдпрд╛рдд рдХрд░реЗрдВ
рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░реЗрдВ
рдЖрдкрдХреЛ рдХреНрд╡реЗрд░реА рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ, рд╕рд╛рде рд╣реА рдкрд╛рдВрдбрд╛ рдФрд░ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕рднреА рдЖрдпрд╛рдд рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдВрдЧреЗ:
import requests from requests.exceptions import ConnectionError from time import sleep import json import pandas as pd import numpy as np from pandas import Series,DataFrame
рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдЗрд╕ рд╕рдордп рдореИрдВ рдПрдкреАрдЖрдИ рдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЗ рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдПрдХ рд▓рд┐рдВрдХ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред
(
рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ )
рд╣рдо Yandex.Direct API рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ
рдПрдкреАрдЖрдИ рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдЕрдиреБрд░реЛрдз рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБрдЕрдиреБрд░реЛрдз рдмрджрд▓реЗрдВред- рдЕрдкрдирд╛ рдЯреЛрдХрди рд▓рд┐рдЦрдХрд░ рд▓реЙрдЧрд┐рди рдХрд░реЗрдВ
рдЯреЛрдХрдиред
token = 'blaBlaBLAblaBLABLABLAblabla'
рд▓реЙрдЧ рдЗрдиред
clientLogin = 'e-66666666'
- рд╣рдо рдЕрдкрдиреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдирд┐рдХрд╛рдп рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕рд╕реЗ
body = { "params": { "SelectionCriteria": { "DateFrom": "_", "DateTo": "_" }, "FieldNames": [ "Date", "CampaignName", "LocationOfPresenceName", "Impressions", "Clicks", "Cost" ], "ReportName": u("_"), "ReportType": "CAMPAIGN_PERFORMANCE_REPORT", "DateRangeType": "CUSTOM_DATE", "Format": "TSV", "IncludeVAT": "NO", "IncludeDiscount": "NO"
рдХрд░ рд▓реЛ
body = { "params": { "SelectionCriteria": { "Filter": [ { "Field": "Clicks", "Operator": "GREATER_THAN", "Values": [ "0" ] }, ] }, "FieldNames": [ "CampaignName", "Impressions", "Clicks", "Ctr", "Cost", "AvgCpc", "BounceRate", "AvgPageviews", "ConversionRate", "CostPerConversion", "Conversions" ], "ReportName": u("Report4"), "ReportType": ┬л ", "DateRangeType": "LAST_5_DAYS", "Format": "TSV", "IncludeVAT": "NO", "IncludeDiscount": "NO" } }
SelectionCriteria рдореЗрдВ рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдбреЗрдЯрд╛ рдХрд╛ рдЪрдпрди рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, 2 рддрд┐рдерд┐рдпрд╛рдВ рд╡рд╣рд╛рдВ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд▓рдЧрд╛рддрд╛рд░ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдо рд╕рдордп рдЕрд╡рдзрд┐ рдХреЛ "рдЕрдВрддрд┐рдо 5 рджрд┐рдиреЛрдВ" рд╕реЗ рдмрджрд▓ рджреЗрдВрдЧреЗред
рд╣рдо рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ ред рдЦрд╛рд▓реА рдорд╛рди рди рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдбрд╛рдпрд░реЗрдХреНрдЯ рд▓рд╛рдкрддрд╛ рдбреЗрдЯрд╛ рдХреЛ рджреЛ minuses рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдкреВрд░реЗ рдХреЙрд▓рдо рдХрд╛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЖрдк рдмрд┐рдирд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЗрд╢рд╛рд░реЛрдВ рдХреЗ рдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдп рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
FieldNamesред рд╣рдо рдпрд╣рд╛рдВ рд╡рд╣ рдбреЗрдЯрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЬреЛ рдореИрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЖрдкрдХреА рд╕реВрдЪреА рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреА рд╣реИред
ReportTypeред рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдкреНрд░рдХрд╛рд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрднрд┐рдпрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред

5. рдбреЗрдЯрд╛ рдХреЛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдореЗрдВ рдЖрдпрд╛рдд рдХрд░реЗрдВред
(рдЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ DataFrame рд╕рдВрднрд╡рддрдГ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рддрд░реАрдХрд╛ рд╣реИред)
рдореИрдВ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рд╕реАрдПрд╕рд╡реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рд┐рдЦрдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред
рд╣рдо рдХреНрд╡реЗрд░реА рдореЗрдВ рдЙрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдвреВрдВрдврддреЗ рд╣реИрдВ рдЬреЛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ - рдпрд╣ "req.text" рд╣реИред
рд╣рдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЛрдб 200 рдореЗрдВ рд╕рднреА рдирд┐рд╖реНрдХрд░реНрд╖ рдмрджрд▓реЗрдВред
print(" ") print("RequestId: {}".format(req.headers.get("RequestId", False))) print(" : \n{}┬╗.format(u(req.text)))
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
format(u(req.text))
рдЕрдм DataFrame рдореЗрдВ рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдпрд╛рдд рдХрд░реЗрдВред
file = open("cashe.csv", "w") file.write(req.text) file.close() f = DataFrame.from_csv("cashe.csv",header=1, sep=' ', index_col=0,)
рдХрджрдо рд╕реЗ рдХрджрдо:
- рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП cashe.csv рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ (рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдПрдВ)
- рд╣рдо рдЗрд╕рдореЗрдВ рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ
- рдлрд╝рд╛рдЗрд▓ рдмрдВрдж рдХрд░реЗрдВ
- рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЦреЛрд▓реЗрдВ (рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдкрдВрдХреНрддрд┐ рд╢реАрд░реНрд╖ рд▓реЗрдЦ рд╣реИрдВ, рдбреЗрдЯрд╛ рдХреЗ рдмреАрдЪ рд╡рд┐рднрдХреНрдд рдХреНрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрддрдВрдн рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╣реИ)
рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдХрд▓рд╛:

рд╣рдо рдХреЙрд▓рдо рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ:
pd.set_option('display.max_columns', None) pd.set_option('display.expand_frame_repr', False) pd.set_option('max_colwidth', -1)
рдЕрдм рд╕рдм рдХреБрдЫ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдПрдХрдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореМрджреНрд░рд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╡реИрд╕рд╛ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рдЬреИрд╕рд╛ рд╡реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпреЗ Yandex.Direct API рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред рд╣рдореЗрдВ рдмрд╕ рдореМрджреНрд░рд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЛ 1,000,000 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
f['Cost'] = f['Cost']/1000000 f['AvgCpc'] = f['AvgCpc']/1000000 f['CostPerConversion'] = f['CostPerConversion']/1000000
рдореИрдВ рдХреНрд▓рд┐рдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рддреБрд░рдВрдд рдЫрдБрдЯрд╛рдИ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рднреА рджреЗрддрд╛ рд╣реВрдБ
f=f.sort_values(by=['Clicks'], ascending=False)
рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛

рдЦреБрдж рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рджрд┐рди рдФрд░ рдЕрднрд┐рдпрд╛рди рджреНрд╡рд╛рд░рд╛ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦреЗ, рддрд╛рдХрд┐ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╡рд┐рдЪрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдореЗрд╢рд╛ рдЬрд╛рдЧрд░реВрдХ рд░рд╣реВрдБ рдФрд░ рд╕рдордЭреВрдБ рдХрд┐ рд╡рд┐рдЪрд▓рди рд▓рдЧрднрдЧ рдХрд╣рд╛рдБ рд╣реБрдЖ рд╣реИред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдЕрдВрддрд┐рдо рдХреЛрдб: import requests from requests.exceptions import ConnectionError from time import sleep import json import pandas as pd import numpy as np from pandas import Series,DataFrame pd.set_option('display.max_columns', None) pd.set_option('display.expand_frame_repr', False) pd.set_option('max_colwidth', -1) # UTF-8 Python 3, Python 2 import sys if sys.version_info < (3,): def u(x): try: return x.encode("utf8") except UnicodeDecodeError: return x else: def u(x): if type(x) == type(b''): return x.decode('utf8') else: return x # --- --- # Reports JSON- () ReportsURL = 'https://api.direct.yandex.com/json/v5/reports' # OAuth- , token = ' ' # # , clientLogin = ' ' # --- --- # HTTP- headers = { # OAuth-. Bearer "Authorization": "Bearer " + token, # "Client-Login": clientLogin, # "Accept-Language": "ru", # "processingMode": "auto" # # "returnMoneyInMicros": "false", # # "skipReportHeader": "true", # # "skipColumnHeader": "true", # # "skipReportSummary": "true" } # body = { "params": { "SelectionCriteria": { "Filter": [ { "Field": "Clicks", "Operator": "GREATER_THAN", "Values": [ "0" ] }, ] }, "FieldNames": [ "CampaignName", "Impressions", "Clicks", "Ctr", "Cost", "AvgCpc", "BounceRate", "AvgPageviews", "ConversionRate", "CostPerConversion", "Conversions" ], "ReportName": u("Report4"), "ReportType": "CAMPAIGN_PERFORMANCE_REPORT", "DateRangeType": "LAST_5_DAYS", "Format": "TSV", "IncludeVAT": "NO", "IncludeDiscount": "NO" } } # JSON body = json.dumps(body, indent=4) # --- --- # HTTP- 200, # HTTP- 201 202, while True: try: req = requests.post(ReportsURL, body, headers=headers) req.encoding = 'utf-8' # UTF-8 if req.status_code == 400: print(" ") print("RequestId: {}".format(req.headers.get("RequestId", False))) print("JSON- : {}".format(u(body))) print("JSON- : \n{}".format(u(req.json()))) break elif req.status_code == 200: format(u(req.text)) break elif req.status_code == 201: print(" ") retryIn = int(req.headers.get("retryIn", 60)) print(" {} ".format(retryIn)) print("RequestId: {}".format(req.headers.get("RequestId", False))) sleep(retryIn) elif req.status_code == 202: print(" ") retryIn = int(req.headers.get("retryIn", 60)) print(" {} ".format(retryIn)) print("RequestId: {}".format(req.headers.get("RequestId", False))) sleep(retryIn) elif req.status_code == 500: print(" . , ") print("RequestId: {}".format(req.headers.get("RequestId", False))) print("JSON- : \n{}".format(u(req.json()))) break elif req.status_code == 502: print(" .") print(", - .") print("JSON- : {}".format(body)) print("RequestId: {}".format(req.headers.get("RequestId", False))) print("JSON- : \n{}".format(u(req.json()))) break else: print(" ") print("RequestId: {}".format(req.headers.get("RequestId", False))) print("JSON- : {}".format(body)) print("JSON- : \n{}".format(u(req.json()))) break # , API except ConnectionError: # print(" API") # break # - except: # print(" ") # break file = open("cashe.csv", "w") file.write(req.text) file.close() f = DataFrame.from_csv("cashe.csv",header=1, sep=' ', index_col=0,) f['Cost'] = f['Cost']/1000000 f['AvgCpc'] = f['AvgCpc']/1000000 f['CostPerConversion'] = f['CostPerConversion']/1000000 f=f.sort_values(by=['Clicks'], ascending=False) print(f)