Python 如何修复ValueError:应为属性名称:第4行第1列(字符43)

Python 如何修复ValueError:应为属性名称:第4行第1列(字符43),python,json,django,python-2.7,Python,Json,Django,Python 2.7,当我运行python manage.py时,runserver代码给出了错误。而且它的追溯很奇怪 我试过了 和所有类似的问题,但没有得到确切的我所面临的 Traceback (most recent call last): File "manage.py", line 22, in <module> execute_from_command_line(sys.argv) File "/home/tousif/.local/lib/python2.7/site-pac

当我运行python manage.py时,runserver代码给出了错误。而且它的追溯很奇怪

我试过了

和所有类似的问题,但没有得到确切的我所面临的

Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/home/tousif/.local/lib/python2.7/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/home/tousif/.local/lib/python2.7/site-packages/django/core/management/__init__.py", line 308, in execute
    settings.INSTALLED_APPS
  File "/home/tousif/.local/lib/python2.7/site-packages/django/conf/__init__.py", line 56, in __getattr__
    self._setup(name)
  File "/home/tousif/.local/lib/python2.7/site-packages/django/conf/__init__.py", line 41, in _setup
    self._wrapped = Settings(settings_module)
  File "/home/tousif/.local/lib/python2.7/site-packages/django/conf/__init__.py", line 110, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/home/tousif/Desktop/ITP/ITP/itpcrm/itpcrm/settings.py", line 55, in <module>
    cfg = json.loads(open('/home/tousif/Desktop/ITP/ITP/itpcrm/config.json', 'r').read())
  File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 4 column 1 (char 43)
“db”后面的空行以unicode代码点0x200B(“零宽度空间”)开始。这就是导致JSON解码器出错的原因

我将文本复制到
gvim
中并制作了一个屏幕截图。见下文

删除那些字符(或整行),它就会工作

(使用十六进制编辑器查看JSON文件也会清楚地显示问题。)

如果仔细查看错误消息,可以发现这正确识别了问题:

ValueError:应为属性名称:第4行第1列(字符43)

这个故事的寓意是:注意空白代码点。

在“db”之后的空行以unicode代码点0x200B(“零宽度空间”)开始。这就是导致JSON解码器出错的原因

我将文本复制到
gvim
中并制作了一个屏幕截图。见下文

删除那些字符(或整行),它就会工作

(使用十六进制编辑器查看JSON文件也会清楚地显示问题。)

如果仔细查看错误消息,可以发现这正确识别了问题:

ValueError:应为属性名称:第4行第1列(字符43)


这个故事的寓意是:注意空白代码点。

很可能您的json文件已损坏,但我们需要查看其内容。在跟踪输出中,我看到了前面提到的
/home/tousif/Desktop/ITP/itpcrm/config.json
。该文件的json格式可能不正确。让我将其粘贴到这里。@RedCricket文件在这里更新。@snakecharmerb文件在这里更新很可能您的json文件已损坏,但我们需要查看其内容。在跟踪输出中,我看到了提到的
/home/tousif/Desktop/ITP/itpcrm/config.json
。该文件的json格式可能不正确。让我将其粘贴到这里。@RedCricket文件在这里更新。@snakecharmerb文件在这里更新谢谢。解决了的。请把我的问题投赞成票好吗?谢谢。解决了的。请把我的问题投赞成票好吗?
{
        "dev": {
                "db": {
​
                        "ENGINE": "django.db.backends.mysql",
                        "NAME": "itpcrm",
                        "USER": "root",
                        "PASSWORD": "password",
                        "HOST": "localhost",
                        "PORT": "3306"
                },
                "jwt_key": "GRESDFwef3452fwefer",
        "voice_api_url": "http://192.112.255.32:9040",
                "voice_api_key": "3123",
        "auth_api_key": "379h4f73f",
        "provisioner_api_key": "abc",
        "quote_approval_url": "http://192.112.255.145:9998/quotes/customer-approval?token=",
        "docusign_base_url": "https://demo.docusign.net/restapi",
        "docusign_integrator_key": "8a256bde-405b",
        "docusign_oauth_base_url": "account-d.docusign.com",
        "docusign_redirect_uri": "http://192.112.255.145:9998/api/callbacks/docusign",
        "docusign_private_key_filename": "/home/itp/docusign-examples/keys/docusign_private_key.txt",
        "docusign_user_id": "7f2444f-ae99-54922fec68f6",
        "docusign_user_name": "dor.com"
        },
        "prod": {
                "db": {
​
                        "ENGINE": "django.db.backends.mysql",
                        "NAME": "itp",
                        "USER": "it",
                        "PASSWORD": "password",
                        "HOST": "192.168.3.111",
                        "PORT": "3306"
                },
                "jwt_key": "rRregrgERg54g564heRGRfdsger",
        "voice_api_url": "https://api.crm.itpscorp.com/itpvoice",
                "voice_api_key": "abc1",
        "auth_api_key": "379h4f73f3279fy927yf928oowqofabdbf",
        "provisioner_api_key": "abc123123",
        "quote_approval_url": "http://192.112.255.145:9998/quotes/customer-approval?token=",
        "docusign_base_url": "https://demo.docusign.net/restapi",
        "docusign_integrator_key": "8a256bde-405b-4032-bf24-be0245631f03",
        "docusign_oauth_base_url": "account-d.docusign.com",
        "docusign_redirect_uri": "http://192.112.255.145:9998/api/callbacks/docusign",
        "docusign_private_key_filename": "/home/itp/docusign-examples/keys/docusign_private_key.txt",
        "docusign_user_id": "7f26f6bb-8a39-444f-ae99-54922fec68f6",
        "docusign_user_name": "docusign@itpfiber.com"
        },
        "mode": "dev"
}