gpt4 book ai didi

python - 如何循环遍历 API key 以在最终数据帧的单独行中获取它们的输出?

转载 作者:行者123 更新时间:2023-12-03 01:09:34 28 4
gpt4 key购买 nike

我是 python 新手,正在尝试循环数据:

我正在使用 sendgrid api 全局统计端点,并且成功获取一个 API key 的输出。

我的代码:

import pandas as pd
import json
from pandas.io.json import json_normalize
from datetime import date
today = date.today().strftime('%Y-%m-%d')
import http.client

conn = http.client.HTTPSConnection("api.sendgrid.com")
payload = "{}"
headers = { 'authorization': "Bearer SG.FO0***" }

conn.request("GET", "/v3/stats?aggregated_by=day&start_date={d}&end_date={d}".format(d=today), payload, headers)

res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

d = data.decode("utf-8")
d = json.loads(d)
d = d[0]['stats'][0]['metrics']

sendgrid = pd.DataFrame([d])
sendgrid.to_csv('sendgrid.csv')

输出:

sendgrid
Out[31]:
blocks bounce_drops bounces ... unique_opens unsubscribe_drops unsubscribes
0 7 14 9 ... 1240 0 0

但是,这是一个 API key 的输出。我在同一帐户下有多个 API key ,并且有与它们关联的不同数据(按品牌排序):

#marketing = SG.UdhzjmjYRC***
#operational = SG.FO0b2Oz***
#SEOmarketing = SG._dnhFlnrSL**
#FFTP = SG.4duN1bHiT9G1**
#PPI_operational = SG.F3zH**

我想循环遍历每个品牌(营销、SEO 营销等)的每个 API key ,这样我就可以通过同一个应用程序为所有这些 API 提取上述输出,而不是创建多个应用程序。我的目标是让最终的数据框如下所示:

Brand              blocks  bounce_drops  bounces  ...  unique_opens  unsubscribe_drops  unsubscribes
marketing 7 14 9 ... 1240 0 0
operational 8 12 7 2000 0 0
SEO 15 10 8 3333 1 0

我应该在代码中更改或添加什么?

最佳答案

似乎您只需要创建一个 dict使用键(部门名称)和值(API 键)并循环浏览您完成大部分工作的部分。

提示:就在您设置 Bearer token 之前和收到数据之后。然后,您可以将结果连接到同一个数据框中。

import pandas as pd
import json
from pandas.io.json import json_normalize
from datetime import date
today = date.today().strftime('%Y-%m-%d')
import http.client

conn = http.client.HTTPSConnection("api.sendgrid.com")
payload = "{}"

keys = {
"marketing" : "SG.UdhzjmjYRC***",
"operational": "SG.FO0b2Oz***",
"SEOmarketing": "SG._dnhFlnrSL**",
"FFTP": "SG.4duN1bHiT9G1**",
"PPI_operational": "SG.F3zH**"
}
df = [] # Create new Dataframe

for name, value in keys.items():
headers = { 'authorization': "Bearer " + value }

conn.request("GET", "/v3/stats?aggregated_by=day&start_date={d}&end_date={d}".format(d=today), payload, headers)

res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

d = json.loads(data.decode("utf-8"))
row = d[0]['stats'][0]['metrics']
# Add Brand to data row here with 'name'
df.append(row) # Load data row into df

sendgrid = pd.DataFrame(df)
sendgrid.to_csv('sendgrid.csv')

关于python - 如何循环遍历 API key 以在最终数据帧的单独行中获取它们的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59882429/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com