在 python 中将 txt 转换为 json
Converting txt to json in python
我对 json 和 python 中的文本文件有疑问。
我有一个带有 cookie 的 .txt 文件,我有大约 11 个,但我只会显示 2 个。
我需要将它们转换为 .json 文件,以便我可以将它们放入 post 请求的 headers 请求中。
这是 .txt 中的 cookie
Set-Cookie3: X-APPLE-WEBAUTH-PCS-Mail="\"TGlzdEFwcGw6MTpBcHBsOjE6AZInfMKt5IWY2iftwASOV2SUGxMMn0ofLN6m6Tl5DsSBDGXPI2Uhfb7IkYx4GWgET2U5FJdBpxnvF1wGPEV2zKGC7UpT2CoDkBSZAGtIHzkmI6zjqXxGS/ObRGVSX4BuUaP6A2Tgt9CKVHzVZG8O+hA8dDxdCy513OkmNYLNRT8a5M7VnDGyqg==\""; path="/"; domain=".icloud.com"; path_spec; domain_dot; secure; expires="2022-06-14 13:29:15Z"; HttpOnly=None; version=0
Set-Cookie4: X-APPLE-WEBAUTH-PCS-News="\"TGlzdEFwcGw6MTpBcHBsOjE6ARKs9FWrQDcrZGUYbHPO2e7Jux6aRGWLAZt4vjHFRLgqERXDD51hgI8ADM/A3SViCTgpnEfThOKn+rJ4rXRlkyQqq3ZPRdlieQI6g/FYs8RBm5Y0fCcFk5RAHq2VQIibURXAttOjyvVo3JHNuJ38zOmGaytYnSujeI6qFNrtep0YV7Ptq6lKcg==\""; path="/"; domain=".icloud.com"; path_spec; domain_dot; secure; expires="2022-06-14 13:29:15Z"; HttpOnly=None; version=0
我希望它们看起来像这样
{
'Set-Cookie3': 'X-APPLE-WEBAUTH-PCS-Mail="\"TGlzdEFwcGw6MTpBcHBsOjE6AZInfMKt5IWY2iftwASOV2SUGxMMn0ofLN6m6Tl5DsSBDGXPI2Uhfb7IkYx4GWgET2U5FJdBpxnvF1wGPEV2zKGC7UpT2CoDkBSZAGtIHzkmI6zjqXxGS/ObRGVSX4BuUaP6A2Tgt9CKVHzVZG8O+hA8dDxdCy513OkmNYLNRT8a5M7VnDGyqg==\""; path="/"; domain=".icloud.com"; path_spec; domain_dot; secure; expires="2022-06-14 13:29:15Z"; HttpOnly=None; version=0',
'Set-Cookie4': 'X-APPLE-WEBAUTH-PCS-News="\"TGlzdEFwcGw6MTpBcHBsOjE6ARKs9FWrQDcrZGUYbHPO2e7Jux6aRGWLAZt4vjHFRLgqERXDD51hgI8ADM/A3SViCTgpnEfThOKn+rJ4rXRlkyQqq3ZPRdlieQI6g/FYs8RBm5Y0fCcFk5RAHq2VQIibURXAttOjyvVo3JHNuJ38zOmGaytYnSujeI6qFNrtep0YV7Ptq6lKcg==\""; path="/"; domain=".icloud.com"; path_spec; domain_dot; secure; expires="2022-06-14 13:29:15Z"; HttpOnly=None; version=0'
}
括号不必像那样,例如它们可以像这样。这样会好一些,同样很重要的是逗号
{'cookie': 'value', 'cookie': 'value'}
我尝试了很多解决方案,但其中很多都不起作用,例如。认为每个 cookie 都是不同的组,所以它们有不同的括号,或者只是引用冒号。
任何帮助都会得到帮助:))
谢谢!
类似的东西应该可以工作:
with open("cookies.txt", "r") as f: # don't forget to change the filename
txt = f.readlines()
d = {line.split(":", maxsplit=1)[0]: line.split(":", maxsplit=1)[1].lstrip() for line in txt}
输出:
>>> print(d)
{'Set-Cookie3': 'X-APPLE-WEBAUTH-PCS-Mail="\"TGlzdEFwcGw6MTpBcHBsOjE6AZInfMKt5IWY2iftwASOV2SUGxMMn0ofLN6m6Tl5DsSBDGXPI2Uhfb7IkYx4GWgET2U5FJdBpxnvF1wGPEV2zKGC7UpT2CoDkBSZAGtIHzkmI6zjqXxGS/ObRGVSX4BuUaP6A2Tgt9CKVHzVZG8O+hA8dDxdCy513OkmNYLNRT8a5M7VnDGyqg==\""; path="/"; domain=".icloud.com"; path_spec; domain_dot; secure; expires="2022-06-14 13:29:15Z"; HttpOnly=None; version=0\n', 'Set-Cookie4': 'X-APPLE-WEBAUTH-PCS-News="\"TGlzdEFwcGw6MTpBcHBsOjE6ARKs9FWrQDcrZGUYbHPO2e7Jux6aRGWLAZt4vjHFRLgqERXDD51hgI8ADM/A3SViCTgpnEfThOKn+rJ4rXRlkyQqq3ZPRdlieQI6g/FYs8RBm5Y0fCcFk5RAHq2VQIibURXAttOjyvVo3JHNuJ38zOmGaytYnSujeI6qFNrtep0YV7Ptq6lKcg==\""; path="/"; domain=".icloud.com"; path_spec; domain_dot; secure; expires="2022-06-14 13:29:15Z"; HttpOnly=None; version=0'}
请注意,正如其他人指出的那样,dict
中不能有相同的键。
我对 json 和 python 中的文本文件有疑问。
我有一个带有 cookie 的 .txt 文件,我有大约 11 个,但我只会显示 2 个。 我需要将它们转换为 .json 文件,以便我可以将它们放入 post 请求的 headers 请求中。
这是 .txt 中的 cookie
Set-Cookie3: X-APPLE-WEBAUTH-PCS-Mail="\"TGlzdEFwcGw6MTpBcHBsOjE6AZInfMKt5IWY2iftwASOV2SUGxMMn0ofLN6m6Tl5DsSBDGXPI2Uhfb7IkYx4GWgET2U5FJdBpxnvF1wGPEV2zKGC7UpT2CoDkBSZAGtIHzkmI6zjqXxGS/ObRGVSX4BuUaP6A2Tgt9CKVHzVZG8O+hA8dDxdCy513OkmNYLNRT8a5M7VnDGyqg==\""; path="/"; domain=".icloud.com"; path_spec; domain_dot; secure; expires="2022-06-14 13:29:15Z"; HttpOnly=None; version=0
Set-Cookie4: X-APPLE-WEBAUTH-PCS-News="\"TGlzdEFwcGw6MTpBcHBsOjE6ARKs9FWrQDcrZGUYbHPO2e7Jux6aRGWLAZt4vjHFRLgqERXDD51hgI8ADM/A3SViCTgpnEfThOKn+rJ4rXRlkyQqq3ZPRdlieQI6g/FYs8RBm5Y0fCcFk5RAHq2VQIibURXAttOjyvVo3JHNuJ38zOmGaytYnSujeI6qFNrtep0YV7Ptq6lKcg==\""; path="/"; domain=".icloud.com"; path_spec; domain_dot; secure; expires="2022-06-14 13:29:15Z"; HttpOnly=None; version=0
我希望它们看起来像这样
{
'Set-Cookie3': 'X-APPLE-WEBAUTH-PCS-Mail="\"TGlzdEFwcGw6MTpBcHBsOjE6AZInfMKt5IWY2iftwASOV2SUGxMMn0ofLN6m6Tl5DsSBDGXPI2Uhfb7IkYx4GWgET2U5FJdBpxnvF1wGPEV2zKGC7UpT2CoDkBSZAGtIHzkmI6zjqXxGS/ObRGVSX4BuUaP6A2Tgt9CKVHzVZG8O+hA8dDxdCy513OkmNYLNRT8a5M7VnDGyqg==\""; path="/"; domain=".icloud.com"; path_spec; domain_dot; secure; expires="2022-06-14 13:29:15Z"; HttpOnly=None; version=0',
'Set-Cookie4': 'X-APPLE-WEBAUTH-PCS-News="\"TGlzdEFwcGw6MTpBcHBsOjE6ARKs9FWrQDcrZGUYbHPO2e7Jux6aRGWLAZt4vjHFRLgqERXDD51hgI8ADM/A3SViCTgpnEfThOKn+rJ4rXRlkyQqq3ZPRdlieQI6g/FYs8RBm5Y0fCcFk5RAHq2VQIibURXAttOjyvVo3JHNuJ38zOmGaytYnSujeI6qFNrtep0YV7Ptq6lKcg==\""; path="/"; domain=".icloud.com"; path_spec; domain_dot; secure; expires="2022-06-14 13:29:15Z"; HttpOnly=None; version=0'
}
括号不必像那样,例如它们可以像这样。这样会好一些,同样很重要的是逗号
{'cookie': 'value', 'cookie': 'value'}
我尝试了很多解决方案,但其中很多都不起作用,例如。认为每个 cookie 都是不同的组,所以它们有不同的括号,或者只是引用冒号。 任何帮助都会得到帮助:)) 谢谢!
类似的东西应该可以工作:
with open("cookies.txt", "r") as f: # don't forget to change the filename
txt = f.readlines()
d = {line.split(":", maxsplit=1)[0]: line.split(":", maxsplit=1)[1].lstrip() for line in txt}
输出:
>>> print(d)
{'Set-Cookie3': 'X-APPLE-WEBAUTH-PCS-Mail="\"TGlzdEFwcGw6MTpBcHBsOjE6AZInfMKt5IWY2iftwASOV2SUGxMMn0ofLN6m6Tl5DsSBDGXPI2Uhfb7IkYx4GWgET2U5FJdBpxnvF1wGPEV2zKGC7UpT2CoDkBSZAGtIHzkmI6zjqXxGS/ObRGVSX4BuUaP6A2Tgt9CKVHzVZG8O+hA8dDxdCy513OkmNYLNRT8a5M7VnDGyqg==\""; path="/"; domain=".icloud.com"; path_spec; domain_dot; secure; expires="2022-06-14 13:29:15Z"; HttpOnly=None; version=0\n', 'Set-Cookie4': 'X-APPLE-WEBAUTH-PCS-News="\"TGlzdEFwcGw6MTpBcHBsOjE6ARKs9FWrQDcrZGUYbHPO2e7Jux6aRGWLAZt4vjHFRLgqERXDD51hgI8ADM/A3SViCTgpnEfThOKn+rJ4rXRlkyQqq3ZPRdlieQI6g/FYs8RBm5Y0fCcFk5RAHq2VQIibURXAttOjyvVo3JHNuJ38zOmGaytYnSujeI6qFNrtep0YV7Ptq6lKcg==\""; path="/"; domain=".icloud.com"; path_spec; domain_dot; secure; expires="2022-06-14 13:29:15Z"; HttpOnly=None; version=0'}
请注意,正如其他人指出的那样,dict
中不能有相同的键。