month = round(float(v["is_sub"]) / 30) #created異常のユーザー回避 if month == 0: month = 1 price = float(v["sub_pay"]) / float(month) user_data.setdefault(v["uid"], {}) user_data[v["uid"]].setdefault(v["app_id"], {}) user_data[v["uid"]][v["app_id"]].setdefault("month", month) user_data[v["uid"]][v["app_id"]].setdefault("price", price) user_data[v["uid"]][v["app_id"]].setdefault("date", []) for i in range(0, int(month)): if i == 0: user_data[v["uid"]][v["app_id"]]["date"].append(int(v["date"])) else: yyyymmdd, yyyymm, y, m, d = date_func.get_yyyymmdd(int(v["date"])) dd = date(int(y), int(m), int(d)) + relativedelta(months = i) user_data[v["uid"]][v["app_id"]]["date"].append(int(dd.strftime('%Y%m%d'))) #出力 fname = "/home/takagi/git/analytics/analytics_tool/data_temp/mnl_subscription_divided_fast" + str(install_date) out = open(fname, 'w') for uid, d0 in user_data.items(): for app, d1 in d0.items(): for dd in d1["date"]: record = str(uid) + "\t" + str(dd) + "\t" + str(app) + "\t" + str(int(d1["month"])) + "\t" + str(d1["price"]) + "\n"
import utility.device_master as dev_master import utility.html_table as html_table import utility.mail_util as mail_util import math import utility.date_func as date_func import utility.html as html_util import utility.google_chart_api as gchart argvs = sys.argv end = int(argvs[1]) summary_app_name = 'kidsnbooks' if len(argvs) > 2: summary_app_name = argvs[2] start = date_func.ndaysago(end, 100) yyyymmdd, yyyymm, yyyy, mm, dd = date_func.get_yyyymmdd(end) date_end = yyyy + "-" + str('%02d' % int(mm)) + "-" + str('%02d' % int(dd)) yyyymmdd, yyyymm, yyyy, mm, dd = date_func.get_yyyymmdd(start) date_start = yyyy + "-" + str('%02d' % int(mm)) + "-" + str('%02d' % int(dd)) from_addr = '*****@*****.**' to_addrs = ['*****@*****.**', '*****@*****.**'] #to_addrs = ['*****@*****.**'] list = ['kidsnbooks', 'rhythmtap', 'rhythmtapplus', 'rhythmetv', 'kdmode', 'rhythm', 'rhythmplus', 'rhythmonstage', 'goccozoo'] allinone_tab = {} #後でメールの文章を入れる t = "サービス詳細KPIレポート" + "(" + str(end) + ")" c = "詳細KPIレポートです。お手数ですが添付ファイルをダウンロードの上、ご覧ください。全タイトル入っていますので重いかもしれません。"
arpu014 = d2["sum_014"] / d2["uu"] if d2["uu"] != 0 else 0 arppu014 = d2["sum_014"] / d2["puu_014"] if d2["puu_014"] != 0 else 0 arpu035 = d2["sum_035"] / d2["uu"] if d2["uu"] != 0 else 0 arppu035 = d2["sum_035"] / d2["puu_035"] if d2["puu_035"] != 0 else 0 arpu060 = d2["sum_060"] / d2["uu"] if d2["uu"] != 0 else 0 arppu060 = d2["sum_060"] / d2["puu_060"] if d2["puu_060"] != 0 else 0 arpu100 = d2["sum_100"] / d2["uu"] if d2["uu"] != 0 else 0 arppu100 = d2["sum_100"] / d2["puu_100"] if d2["puu_100"] != 0 else 0 arpu180 = d2["sum_180"] / d2["uu"] if d2["uu"] != 0 else 0 arppu180 = d2["sum_180"] / d2["puu_180"] if d2["puu_180"] != 0 else 0 arpu370 = d2["sum_370"] / d2["uu"] if d2["uu"] != 0 else 0 arppu370 = d2["sum_370"] / d2["puu_370"] if d2["puu_370"] != 0 else 0 arpu730 = d2["sum_730"] / d2["uu"] if d2["uu"] != 0 else 0 arppu730 = d2["sum_730"] / d2["puu_730"] if d2["puu_730"] != 0 else 0 yyyymmdd, yyyymm, year, month, date = date_func.get_yyyymmdd(reg) record = yyyymmdd + "\t" + yyyymm + "\t" + year + "\t" + month + "\t" + date + "\t" record += app + "\t" + os + "\t" record += str(arpu007) + "\t" + str(arppu007) + "\t" + str(d2["puu_007"]) + "\t" record += str(arpu014) + "\t" + str(arppu014) + "\t" + str(d2["puu_014"]) + "\t" record += str(arpu035) + "\t" + str(arppu035) + "\t" + str(d2["puu_035"]) + "\t" record += str(arpu060) + "\t" + str(arppu060) + "\t" + str(d2["puu_060"]) + "\t" record += str(arpu100) + "\t" + str(arppu100) + "\t" + str(d2["puu_100"]) + "\t" record += str(arpu180) + "\t" + str(arppu180) + "\t" + str(d2["puu_180"]) + "\t" record += str(arpu370) + "\t" + str(arppu370) + "\t" + str(d2["puu_370"]) + "\t" record += str(arpu730) + "\t" + str(arppu730) + "\t" + str(d2["puu_730"]) + "\n" out.write(record) out.close()