Python 如何将内容类型为application/x-www-form-urlencoded格式的数据帧行迭代到API POST请求中?

Python 如何将内容类型为application/x-www-form-urlencoded格式的数据帧行迭代到API POST请求中?,python,pandas,python-requests,api-design,Python,Pandas,Python Requests,Api Design,我有一个如下所示的数据帧: email p[1]: a@a.com 1 b@b.com 2 p[1]字段是列表ID 如何以内容类型:application/x-www-form-urlencoded格式将此数据帧的行一次传递到API post请求中 如果没有数据帧,当我尝试此代码时,它可以工作: headers = { 'content-type': 'application/x-www-form-urlencoded', } params =

我有一个如下所示的数据帧:

email        p[1]:
a@a.com       1
b@b.com       2 
p[1]
字段是列表ID

如何以
内容类型:application/x-www-form-urlencoded
格式将此数据帧的行一次传递到API post请求中

如果没有数据帧,当我尝试此代码时,它可以工作:

headers = {
    'content-type': 'application/x-www-form-urlencoded',
}

params = {
    'email': 'peach@peach.com',
   ' p[1]': '1',
}

url = 'https://URL/admin/api.php?api_action=contact_add&api_output=json&api_key=123ABC' 
resp = requests.post(url, data=params, headers=headers)
如何传递数据帧的每一行,如何将数据帧格式转换为
params
equalEvent格式

此api不接受批量上载。更多关于API的信息可以在这里找到


先谢谢你

如果希望一次执行一个,则需要
DataFrame.iterrows

import pandas as pd

df = pd.DataFrame({'email': ['a@a.com', 'b@b.com'], 'p[1]': [1,2]})

for index, row in df.iterrows():
    params = {'email': row.email, 'p[1]': row['p[1]']}
    print(params)

{'email': 'a@a.com', 'p[1]': 1}
{'email': 'b@b.com', 'p[1]': 2}

然后,您可以在循环中一次将
参数传递给任何您想要的对象。

@RustyShackleford这个答案是正确的,但是您可以通过将dict转换为pandas来加快速度:
对于df.to_dict(orient='records')中的参数: