【发布时间】:2020-09-27 13:22:24
【问题描述】:
我正在尝试使用 Python 请求通过 POST 请求和 JSON 请求参数从网站检索 cookie。
我正在使用 KNIME,它允许您将响应输出为 DataFrame。当我请求 cookie 并尝试使用以下代码将其作为 DataFrame 输出时:
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)
,我收到以下错误:
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'>".
我知道如果响应是 JSON,DataFrame 输出函数会起作用,所以我尝试了以下代码:
x = session.post(url, json=payload)
res = session.cookies.get_dict()
output_table = DataFrame(res)
但这会产生以下错误:
ValueError: If using all scalar values, you must pass an index
如果有人知道如何为 DataFrame 格式化这些 cookie,或者我应该使用不同的库来请求请求,请通知我。谢谢。
编辑:使用以下 DataFrame 构造函数:
output_table = DataFrame(data=session.cookies.get_dict(), index=session.cookies.get_dict(), columns=None, dtype=None, copy=False)
【问题讨论】:
-
你能解释一下把这条线放在哪里吗?我似乎无法让它工作
-
尝试将其传递给
DataFrame构造函数。它将返回字典名称/值。 -
好吧,这在一定程度上有效,以下构造函数:
output_table = DataFrame(data=session.cookies.get_dict(), index=session.cookies.get_dict(), columns=None, dtype=None, copy=False),但会产生重复值 - 我将在我的问题中发布一个屏幕截图来演示。
标签: python dataframe cookies python-requests http-post