【问题标题】:How to fix ValueError: Expecting property name: line 4 column 1 (char 43)如何修复 ValueError:期望属性名称:第 4 行第 1 列(字符 43)
【发布时间】:2019-05-27 08:02:04
【问题描述】:

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

我试过了

JSON ValueError: Expecting property name: line 1 column 2 (char 1)

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

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)

我的 config.json 文件,其中包含凭据等(我已更改凭据以在此处发布)。并从运行正常的实时服务器获取此文件,但在本地它给出此错误。

{
        "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"
}

【问题讨论】:

  • 您的 json 文件很可能已损坏,但我们需要查看其内容。
  • 在跟踪输出中我看到提到了/home/tousif/Desktop/ITP/ITP/itpcrm/config.json。该文件的 json 格式可能错误。
  • 让我把它贴在这里。
  • @RedCricket 文件已在此处更新。
  • @snakecharmerb 文件在此处更新

标签: python json django python-2.7


【解决方案1】:

“db”之后的空行以 unicode 代码点 0x200B(“零宽度空间”)开头。这就是 JSON 解码器的问题。

我将文字复制到gvim 并进行了截图。见下文。

删除这些字符(或整行)就可以了...

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

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

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

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

【讨论】:

  • 谢谢。解决了 。你能给我的问题投票吗?
猜你喜欢
  • 2014-12-02
  • 2014-10-31
  • 2018-06-28
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 2018-10-30
  • 2022-10-15
  • 1970-01-01
相关资源
最近更新 更多