使用 Python 请求库将 Cookie 请求为 JSON 以便格式化为 DataFrame

Using Python Requests library to request Cookie as JSON in order to format as DataFrame

我正在尝试使用 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 的 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