Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么会出现json.decoder.jsondeCoderror错误?_Python_Json_Logging - Fatal编程技术网

Python 为什么会出现json.decoder.jsondeCoderror错误?

Python 为什么会出现json.decoder.jsondeCoderror错误?,python,json,logging,Python,Json,Logging,我正在尝试使用配置Python日志模块 然而,我的JSON文件似乎已损坏,即使它作为Python dict使用,false更改为false,因此我认为这不是语法错误 我的密码是: import json with open('logging_config.json') as f: d = json.load(f) 我的logging_config.json文件是: { "version": 1, "disable_existing_loggers": false, "fo

我正在尝试使用配置Python日志模块

然而,我的JSON文件似乎已损坏,即使它作为Python dict使用,
false
更改为
false
,因此我认为这不是语法错误

我的密码是:

import json

with open('logging_config.json') as f:
    d = json.load(f)
我的
logging_config.json
文件是:

{
  "version": 1,
  "disable_existing_loggers": false,
  "formatters": {
    "standard": {
      "format": "[%(levelname)s] %(name)s: %(message)s"
    },
  },
  "handlers": {
    "default": {
      "level": "DEBUG",
      "formatter": "standard",
      "class": "logging.StreamHandler",
    },
  },
  "loggers": {
    "": {
      "handlers": ["default"],
      "level": "INFO",
      "propagate": true
    },
    "myfunc": {
      "handlers": ["default"],
      "level": "DEBUG",
      "propagate": false
    },
  }
}
当我运行这个简单的程序时,我得到了一个错误:
json.decoder.jsondecoderror:需要用双引号括起来的属性名:第8行第3列(char 156)

是什么导致JSON解码器失败


提前感谢您的帮助。

您有多个多余的逗号,这将破坏JSON反序列化

这是您的原始JSON,每个多余的逗号都被指出:

{
  "version": 1,
  "disable_existing_loggers": false,
  "formatters": {
    "standard": {
      "format": "[%(levelname)s] %(name)s: %(message)s"
    }, # <--- extraneous comma
  },
  "handlers": {
    "default": {
      "level": "DEBUG",
      "formatter": "standard",
      "class": "logging.StreamHandler", # <--- extraneous comma
    }, # <--- extraneous comma
  },
  "loggers": {
    "": {
      "handlers": ["default"],
      "level": "INFO",
      "propagate": true
    },
    "myfunc": {
      "handlers": ["default"],
      "level": "DEBUG",
      "propagate": false
    }, # <--- extraneous comma
  }
}

您有多个无关的逗号,这将破坏JSON反序列化

这是您的原始JSON,每个多余的逗号都被指出:

{
  "version": 1,
  "disable_existing_loggers": false,
  "formatters": {
    "standard": {
      "format": "[%(levelname)s] %(name)s: %(message)s"
    }, # <--- extraneous comma
  },
  "handlers": {
    "default": {
      "level": "DEBUG",
      "formatter": "standard",
      "class": "logging.StreamHandler", # <--- extraneous comma
    }, # <--- extraneous comma
  },
  "loggers": {
    "": {
      "handlers": ["default"],
      "level": "INFO",
      "propagate": true
    },
    "myfunc": {
      "handlers": ["default"],
      "level": "DEBUG",
      "propagate": false
    }, # <--- extraneous comma
  }
}

这是因为JSON无效。这一个是有效的。 我从JSON中删除了额外的逗号。 您可以使用任何JSON验证器来修复它

{
  "version": 1,
  "disable_existing_loggers": false,
  "formatters": 
  {
    "standard": 
    {
      "format": "[%(levelname)s] %(name)s: %(message)s"
    }
  },
  "handlers": 
  {
    "default": 
    {
      "level": "DEBUG",
      "formatter": "standard",
      "class": "logging.StreamHandler"
    }
  },
  "loggers": 
  {
    "": 
    {
      "handlers": ["default"],
      "level": "INFO",
      "propagate": true
    },
    "myfunc": 
    {
      "handlers": ["default"],
      "level": "DEBUG",
      "propagate": false
    }
  }
}

这是因为JSON无效。这一个是有效的。 我从JSON中删除了额外的逗号。 您可以使用任何JSON验证器来修复它

{
  "version": 1,
  "disable_existing_loggers": false,
  "formatters": 
  {
    "standard": 
    {
      "format": "[%(levelname)s] %(name)s: %(message)s"
    }
  },
  "handlers": 
  {
    "default": 
    {
      "level": "DEBUG",
      "formatter": "standard",
      "class": "logging.StreamHandler"
    }
  },
  "loggers": 
  {
    "": 
    {
      "handlers": ["default"],
      "level": "INFO",
      "propagate": true
    },
    "myfunc": 
    {
      "handlers": ["default"],
      "level": "DEBUG",
      "propagate": false
    }
  }
}

正如其他人已经回答的,JSON中有一些多余的逗号


您可以将JSON馈送到;它倾向于提供更多有用的帮助消息。

正如其他人已经回答的那样,JSON中有一些多余的逗号


您可以将JSON馈送到;它倾向于提供更多有用的帮助消息。

JSON解析器希望每个键都有特定类型的值。字符串是一个可接受的值,整数是另一个可接受的值。您试图插入布尔值,但布尔值的大小写之间存在差异。只有一个是有效的布尔值。这里有一些@ajoseps不是问题所在。问题是您有一个无关的逗号,因此JSON需要一个键。这个JSON是如何生成的?它当然不是由python
json
module实现的,它曾经是我手动转换的python dict。Python不需要额外的逗号,但json不需要。json解析器希望每个键都有特定类型的值。字符串是一个可接受的值,整数是另一个可接受的值。您试图插入布尔值,但布尔值的大小写之间存在差异。只有一个是有效的布尔值。这里有一些@ajoseps不是问题所在。问题是您有一个无关的逗号,因此JSON需要一个键。这个JSON是如何生成的?它当然不是由python
json
module实现的,它曾经是我手动转换的python dict。Python原谅了额外的逗号,但是json没有,Python原谅了这些额外的逗号。在将Python转换为json时,我错过了它们。谢谢,Python原谅了这些额外的逗号。在将Python转换为json时,我错过了它们。谢谢