【问题标题】:JSONDecodeError: Expecting property name enclosed in double quotesJSONDecodeError:期望用双引号括起来的属性名称
【发布时间】:2020-06-24 13:28:43
【问题描述】:
import json as js
CONFIG_FILE_NAME = "Config.json"
FILE = open(CONFIG_FILE_NAME,'r')
CONFIG_FILE = [js.loads(CONTENT) for CONTENT in FILE]

这是我想从这个 Config.json 文件中提取数据的脚本

 {
 "Files": {
 "Emails": {
 "FileName": "Emails.txt",
 "Location": "PasteHereLocation"
 },
 "Body": {
 "FileName": "Message.txt",
 "Location": "PasteHereLocation"
 },
 "Servers": {
 "FileName": "Servers.json",
 "Location": "PasteHereLocation"
 }
 }
}

但它给出了这个错误。因为我已经尝试过不同的东西,例如 1) 将 json 作为原始字符串放入 r' json content' 2) 更改解码方法或 3) 将 .json 更改为 .txt。但还是同样的错误。

File "D:\Softwares\Technical\Anaconda\lib\json\decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)

JSONDecodeError: Expecting property name enclosed in double quotes

请查看此内容

【问题讨论】:

    标签: python json decode


    【解决方案1】:
    import json as js
    CONFIG_FILE_NAME = "Config.json"
    FILE = open(CONFIG_FILE_NAME,'r')
    js.load(FILE)  # or use js.loads(FILE.read())
    

    省略该行

    CONFIG_FILE = [js.loads(CONTENT) for CONTENT in FILE]
    

    这是正在发生的事情:
    您的文件包含有效的 JSON,但是当您使用 [[js.loads(CONTENT) for CONTENT in FILE]] 逐行读取文件时 然后变量 CONTENT 不不再保留有效的 JSON,它们只是不完整或无效的 JSON 行,然后您尝试将其加载到 json 模块中,这就是它给您的错误。

    【讨论】:

    • 你拯救了我的一天.. 谢谢.. 正如我提到的,我已经应用了所有可能的方法,但没有注意这一点.. 它有效..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    相关资源
    最近更新 更多