我正在尝试运行以下代码:
Headers=requests.get('https://coinmarketcap.com').headers
CookieDough=Headers['Set-Cookie']
Headers="""\"{
":authority":"coinmarketcap.com",
":method":"POST",
":path":"/login",
":scheme":"https",
"accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"accept-encoding":"gzip, deflate, br",
"accept-language":"en-US,en;q=0.9",
"cache-control":"max-age=0",
"content-length":"743",
"content-type":"application/x-www-form-urlencoded",
"cookie":\""""+CookieDough+"""\",
"origin":"https://coinmarketcap.com",
"referer":"https://coinmarketcap.com",
"upgrade-insecure-requests":"1",
"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36"
}\""""
print(json.loads(Headers, strict=False))
在过去的一个线程中,有人在python2.7上运行了这段代码,并且它成功地运行了,但是当我在python3.6.4上运行它时,它没有运行。它给了我以下错误:
json.decoder.JSONDecodeError: Extra data: line 2 column 2 (char 4)
我正在Sublime Text 3 Builder上运行Python3.6.4。你知道吗
谢谢
行标题应该是问题所在
"{ ":authority":"coinmarketcap.com", ":method":"POST", ":path":"/login", ":scheme":"https", "accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", "accept-encoding":"gzip, deflate, br", "accept-language":"en-US,en;q=0.9", "cache-control":"max-age=0", "content-length":"743", "content-type":"application/x-www-form-urlencoded", "cookie":"stuff", "origin":"https://coinmarketcap.com", "referer":"https://coinmarketcap.com", "upgrade-insecure-requests":"1", "user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36" }"
如前所述,您的示例是不完整的,因此很难确定,但不管怎样,您确定它在Python2.7中工作,因为在Python2.7或3.6版本中,如果没有修改,它就不适用于我。你知道吗
具体来说,这是一个问题:
字符串中的第一个和最后一个字符是
\"
,这是一个常规的双引号字符。这意味着Headers
的值如下所示:这不是有效的JSON;它是一个嵌入了换行符的字符串。可能您想从开头和结尾删除有问题的
\"
。你知道吗如果目的是让它成为一个看起来像包含字典的字符串,那么根据定义,它已经是这样了,您不需要使用
json
模块将它解码为字符串。你知道吗如果打算让它成为一个字典,那么删除这些字符会使它再次有效(假设
CookieDough
中的内容是一个有效的JSON字符串)。你知道吗相关问题 更多 >
编程相关推荐