Python 当我的所有引号都是单引号时,应将属性名称括在双引号中

Python 当我的所有引号都是单引号时,应将属性名称括在双引号中,python,json,python-requests,Python,Json,Python Requests,我正在尝试执行这段代码,这段代码应该能够成功地将我的json字符串转换为一个适当的dict文件,因为显然请求库需要以这种方式格式化它 import json Headers="""{ ":authority":"coinmarketcap.com", ":method":"POST", ":path":"/login", ":scheme":"https", "accept":"text/html,application/xhtml+xml,application/xml;q=0.9,ima

我正在尝试执行这段代码,这段代码应该能够成功地将我的json字符串转换为一个适当的dict文件,因为显然请求库需要以这种方式格式化它

import json


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))
但是,当我运行此操作时,会出现以下错误:

Traceback (most recent call last):
  File "C:\Users\Master\Documents\CoinMarketCapScraperTool\CoinMarketCapScraperTool", line 39, in <module>
    print(json.loads(Headers))
  File "C:\Users\Master\AppData\Local\Programs\Python\Python36-32\lib\json\__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "C:\Users\Master\AppData\Local\Programs\Python\Python36-32\lib\json\decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Users\Master\AppData\Local\Programs\Python\Python36-32\lib\json\decoder.py", line 355, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 17 column 1 (char 1132)
json.decoder.JSONDecodeError: Invalid control character at: line 1 column 3 (char 2)
AttributeError: 'str' object has no attribute 'read'
但是当我补充

strict=False
对此,我得到以下错误:

Traceback (most recent call last):
  File "C:\Users\Master\Documents\CoinMarketCapScraperTool\CoinMarketCapScraperTool", line 39, in <module>
    print(json.loads(Headers))
  File "C:\Users\Master\AppData\Local\Programs\Python\Python36-32\lib\json\__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "C:\Users\Master\AppData\Local\Programs\Python\Python36-32\lib\json\decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Users\Master\AppData\Local\Programs\Python\Python36-32\lib\json\decoder.py", line 355, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 17 column 1 (char 1132)
json.decoder.JSONDecodeError: Invalid control character at: line 1 column 3 (char 2)
AttributeError: 'str' object has no attribute 'read'

我快疯了,请帮帮我,哈哈

最后一个键后面有个逗号(
“用户代理”
);JSON不允许这样做。即使删除它,我仍然会获得AttributeError:“str”对象在打印时没有“read”属性(JSON.load(Headers,strict=False))从字符串(
load
)和类似文件的对象(
load
)加载JSON有不同的方法。当你得到“'str'对象没有'read'属性error,这意味着您调用了错误的对象,将字符串传递给了文件解析器。首先感谢您指出这一点,因为我不知道它是做什么的,我最初使用的是loads,但由于无法找到解决方案而切换到load。然而,即使在做了这个更改之后,我仍然收到:json.decoder.jsondecoderror:Extra data:line 2 column 2(char 4),一旦删除了后面的逗号,它将在Py2.7中加载而不会出现问题。。。