Python API POST响应仅读取数据帧转换为列表的最后一条记录,如何更改?

Python API POST响应仅读取数据帧转换为列表的最后一条记录,如何更改?,python,pandas,python-requests,api-design,Python,Pandas,Python Requests,Api Design,我试图通过POST命令将数据传递到API中。该API仅获取内容类型为application/x-www-form-urlencodedformat的格式化数据。我还不熟悉这种格式。关于我正在尝试进行的特定API调用的信息可以在这里找到。https://www.activecampaign.com/api/example.php?call=contact_add 数据位于具有以下字段的数据框中 email p[1]* 0 belle@yandex.

我试图通过POST命令将数据传递到API中。该API仅获取内容类型为application/x-www-form-urlencodedformat的格式化数据。我还不熟悉这种格式。关于我正在尝试进行的特定API调用的信息可以在这里找到。https://www.activecampaign.com/api/example.php?call=contact_add

数据位于具有以下字段的数据框中

     email                 p[1]*
0     belle@yandex.com      1
1  apple765@yandex.com      1
2   pear432@yandex.com      1
根据文档p[1]是指定我希望数据进入哪个列表的字段

我正在运行的代码如下所示:

df1 = pd.DataFrame({'email':['belle@yandex.com','apple765@yandex.com','pear432@yandex.com'], 'p[1]*':1})

#I think Content-Type: application/x-www-form-urlencoded formated data takes list format#

df1 = df1.to_dict(orient = 'list')

url = 'https://URL/admin/api.php?api_action=contact_add&api_output=json&api_key=123ABC' 

resp = requests.post(url, data=df1, headers=headers)

print(resp.text)
response对象resp返回200,但在电子邮件活动列表中,我只看到第2行中的最后一个电子邮件地址。为什么会这样?我做错了什么


先谢谢你

基本上,服务器通过发送201状态码来确认对象的创建,但有些服务器返回200。我想知道你是否已经创建了这些对象。。。
我也不确定您是否需要在p[1]之后加上星号。快速查看文档后,我认为p应该只指向列表ID,但这需要您检查。

您是对的,不需要加星号。现在我不知道如何将每个电子邮件地址的数据帧嵌入api中。有什么想法吗?看起来你可以在每个请求中添加一条记录,所以如果你想在数据帧中迭代电子邮件,你应该这样做:对于df1中的电子邮件['email']:send request resp=requests.postrl,data={'email':email,'p[1]':1}太好了!很高兴能帮上忙,伙计!