Python 将请求 cookie 正确保存到 json
Python save request cookies into json properly
您好,我想将我的 python 请求 cookie 保存到一个文本文件中 json,如下所示:
{"Proxy": "Cookies"}
目前我正在使用:
with open('data.txt') as f:
proxy_data = json.load(f)
r = requests.get(URL,proxies=proxies, cookies=proxy_data['127:000'])
proxy_data['127:000'] = dict(session.cookies)
with open('data.txt', 'w') as json_file:
json.dump(proxy_data, json_file)
我的 data.txt 文件写入后看起来像这样:
{"127:000": "{\"__cf_bm\": \"628f4c77a5139148cf28961a73f4edffed52f8c1-1622925414-1800-AaLguAyS9Hfl8TXCaQYUjjZ5i3sDck15kn/vcPJCWZBxi+nM9xU0zd/GfyKJu6/3R+GQEFdk/DGHEV4mANvpG1UMvcsXA9G9l/AFNEnIknTv\", \"cf_clearance\": \"84bffd070fbafcb91edcfa82f8cc3ba5a60a618d-1622925414-0-150\", \"cf_chl_seq_b116a013f9e2c44\": \"d3ac4406fc56d30\"}"}
不过我运行这里犯了一些错误。我怎样才能正确地做?
更新
我得到的错误
Python\Python37\lib\site-packages\requests\cookies.py", line 524, in
cookiejar_from_dict
cookiejar.set_cookie(create_cookie(name, cookie_dict[name])) TypeError: string indices must be integers
目前,proxy_data["127:000"]
的值是您传递给 cookies
参数的字符串。
with open("data.txt") as f:
proxy_data = json.load(f)
print(type(proxy_data["127:000"]))
# >> <class 'str'>
两个选项:
- 使用
json.loads
将proxy_data["127:000"]
的值解析为字典
r = requests.get(URL, proxies=proxies, cookies=json.loads(proxy_data['127:000']))
- 确保正确保存嵌套的字典。
proxy_data = {"127:000": {"cookie_test": "value_test"}}
with open("data.txt", "w") as f:
f.write(json.dumps(proxy_data))
with open("data.txt", "r") as f:
proxy_data = json.loads(f.read())
print(type(proxy_data["127:000"]))
# >> <class 'dict'>
您好,我想将我的 python 请求 cookie 保存到一个文本文件中 json,如下所示:
{"Proxy": "Cookies"}
目前我正在使用:
with open('data.txt') as f:
proxy_data = json.load(f)
r = requests.get(URL,proxies=proxies, cookies=proxy_data['127:000'])
proxy_data['127:000'] = dict(session.cookies)
with open('data.txt', 'w') as json_file:
json.dump(proxy_data, json_file)
我的 data.txt 文件写入后看起来像这样:
{"127:000": "{\"__cf_bm\": \"628f4c77a5139148cf28961a73f4edffed52f8c1-1622925414-1800-AaLguAyS9Hfl8TXCaQYUjjZ5i3sDck15kn/vcPJCWZBxi+nM9xU0zd/GfyKJu6/3R+GQEFdk/DGHEV4mANvpG1UMvcsXA9G9l/AFNEnIknTv\", \"cf_clearance\": \"84bffd070fbafcb91edcfa82f8cc3ba5a60a618d-1622925414-0-150\", \"cf_chl_seq_b116a013f9e2c44\": \"d3ac4406fc56d30\"}"}
不过我运行这里犯了一些错误。我怎样才能正确地做?
更新
我得到的错误
Python\Python37\lib\site-packages\requests\cookies.py", line 524, in cookiejar_from_dict cookiejar.set_cookie(create_cookie(name, cookie_dict[name])) TypeError: string indices must be integers
目前,proxy_data["127:000"]
的值是您传递给 cookies
参数的字符串。
with open("data.txt") as f:
proxy_data = json.load(f)
print(type(proxy_data["127:000"]))
# >> <class 'str'>
两个选项:
- 使用
json.loads
将
proxy_data["127:000"]
的值解析为字典
r = requests.get(URL, proxies=proxies, cookies=json.loads(proxy_data['127:000']))
- 确保正确保存嵌套的字典。
proxy_data = {"127:000": {"cookie_test": "value_test"}}
with open("data.txt", "w") as f:
f.write(json.dumps(proxy_data))
with open("data.txt", "r") as f:
proxy_data = json.loads(f.read())
print(type(proxy_data["127:000"]))
# >> <class 'dict'>