何らかの理由でAdWordsに通常のREST APIがない場合、代わりに.csvファイルまたは最近の文字列を返すSOAP APIが使用されます。CSVソースからdjangoモデルを作成する
私はdjangoを使用しており、結果をデータベースに保存する必要があります。現在、私はPandasを使用して文字列をデータフレームに変換し、それを反復処理してデータベースに保存します。しかし、このプロセスは遅く、非効率的です。私はこれのためだけにパンダを使いたくない。私の状況でASTは機能しますか?
これを行う最も簡単な方法は何ですか?
パンダと私のコードは次のようになります。
abc = report_downloader.DownloadReportAsString(report, skip_report_header=True, skip_column_header=False,skip_report_summary=True)
print(abc)
print(type(abc))
df = pd.read_csv(StringIO(abc), sep=",",)
#print (df.to_string())
for index, row in df.iterrows():
ctr = float(float(row['CTR'].strip('%'))/100)
conv_rate = float(float(row['Conv. rate'].strip('%'))/100)
cost = row['Cost']/1000000
cpm = row['Avg. CPM']/1000000
avg_cpc = row['Avg. CPC']/1000000
def_data = {
'impressions':row['Impressions'],
'ctr':ctr,
'avg_cpc':avg_cpc,
'conversion_rate':conv_rate,
'clicks':row['Clicks'],
'cost':cost,
'cpm':cpm,
'conversions':row['Conversions'],
}
obj, created = AdWordsData.objects.get_or_create(
user=user,
date=row['Day'],
campaign=row['Campaign'],
ad_group=row['Ad group'],
final_url=row['Final URL'],
tracking_template=row['Tracking template'],
defaults=def_data,
)
if not created:
obj.__dict__.update(**def_data)
obj.save()
else:
print ('No campaigns were found.')
ABC(アドワーズ広告によるデータのリターンは文字列であり、次のようになります。CSVファイルを読み込むためにパンダを使用し
Day,Campaign,Ad group,Final URL,Tracking template,Impressions,CTR,Avg. CPC,Conv. rate,Clicks,Cost,Avg. CPM,Conversions
2017-09-08,mysite.me Many Keywords,Many Keywords,https://mysite.me, --,364,0.82%,73333,0.00%,3,220000,604396,0.00
2017-09-10,mysite.me Many Keywords,Many Keywords,https://mysite.me, --,1562,3.46%,435926,0.00%,54,23540000,15070423,0.00
2017-09-11,mysite.me Many Keywords,Many Keywords,https://mysite.me, --,1806,3.49%,387619,0.00%,63,24420000,13521595,0.00