使用Python请求库将Cookie请求为JSON,以便格式化为数据帧
我正在尝试使用Python请求,使用POST请求和JSON请求参数从网站检索cookie 我使用的是KNIME,它允许您将响应作为数据帧输出。当我请求cookie并尝试将其输出为数据帧时,使用以下代码:使用Python请求库将Cookie请求为JSON,以便格式化为数据帧,python,dataframe,cookies,python-requests,http-post,Python,Dataframe,Cookies,Python Requests,Http Post,我正在尝试使用Python请求,使用POST请求和JSON请求参数从网站检索cookie 我使用的是KNIME,它允许您将响应作为数据帧输出。当我请求cookie并尝试将其输出为数据帧时,使用以下代码: from pandas import DataFrame import requests session = requests.Session() url = "https://api.danmurphys.com.au/apis/ui/Address/SetFavouriteSt
from pandas import DataFrame
import requests
session = requests.Session()
url = "https://api.danmurphys.com.au/apis/ui/Address/SetFavouriteStore"
payload = {"StoreNo":"1276"}
x = session.post(url, json=payload)
output_table = DataFrame(x.cookies)
x = session.post(url, json=payload)
res = session.cookies.get_dict()
output_table = DataFrame(res)
,我得到以下错误:
Execute failed: No serializer extension having the id or processing python type "http.cookiejar.Cookie" could be found.
Unsupported column type in column: "0", column type: "<class 'http.cookiejar.Cookie'>".
ValueError: If using all scalar values, you must pass an index
但这会产生以下错误:
Execute failed: No serializer extension having the id or processing python type "http.cookiejar.Cookie" could be found.
Unsupported column type in column: "0", column type: "<class 'http.cookiejar.Cookie'>".
ValueError: If using all scalar values, you must pass an index
如果有人知道如何为数据帧格式化这些cookie,或者如果我应该使用其他库来处理请求,请通知我。谢谢
编辑:使用以下数据帧构造:
output_table = DataFrame(data=session.cookies.get_dict(), index=session.cookies.get_dict(), columns=None, dtype=None, copy=False)
成功输出格式化为DataFrame的Cookie,但值跨行和列复制,如屏幕截图所示 由于ValueError指向使用索引传递所有标量值,因此您可以执行以下操作:
from pandas import DataFrame
import requests
session = requests.Session()
url = "https://api.danmurphys.com.au/apis/ui/Address/SetFavouriteStore"
payload = {"StoreNo":"1276"}
x = session.post(url, json=payload)
res = session.cookies.get_dict()
output_table = DataFrame({'data':res})#pass res as a dictionary value
由于ValueError指向通过索引传递所有标量值,因此您可以执行以下操作:
from pandas import DataFrame
import requests
session = requests.Session()
url = "https://api.danmurphys.com.au/apis/ui/Address/SetFavouriteStore"
payload = {"StoreNo":"1276"}
x = session.post(url, json=payload)
res = session.cookies.get_dict()
output_table = DataFrame({'data':res})#pass res as a dictionary value
你能解释一下这条线放在哪里吗?我似乎无法让它工作。请尝试将它传递到
DataFrame
构造函数中。它将返回dict name/value.Ok这在一定程度上是有效的,以下构造函数:output\u table=DataFrame(data=session.cookies.get\u dict(),index=session.cookies.get\u dict(),columns=None,dtype=None,copy=False)
,但是会产生重复的值-我会在我的问题中发布一个屏幕截图来演示。你能解释一下这条线放在哪里吗?我似乎无法让它工作。请尝试将它传递到DataFrame
构造函数中。它将返回dict name/value.Ok这在一定程度上起了作用,以下构造函数:output\u table=DataFrame(data=session.cookies.get\u dict(),index=session.cookies.get\u dict(),columns=None,dtype=None,copy=False)
,但会产生重复的值-我将在问题中发布一个屏幕截图来演示。