【问题标题】:Error Loading JSON from configuration file using ConfigParser使用 ConfigParser 从配置文件加载 JSON 时出错
【发布时间】:2015-12-18 12:04:58
【问题描述】:

我有这个配置文件

[section1]
namespace = {'pro1':'http://pro1/go','pro2':'http://pro2/go','pro3':'http://pro3/go'}

用我得到的 ConfigParser 读取文件:

>>> from ConfigParser import ConfigParser
>>> Config = ConfigParser()
>>> Config.read("myfile.ini")
>>> name = Config.get("section1", "namespace")
>>> name
"{'pro1':'http://pro1/go','pro2':'http://pro2/go','pro3':'http://pro3/go'}"

将字符串转换为dict/json:

>>> import json
>>> namespace = json.loads(name)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\json\__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "C:\Python27\lib\json\decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Python27\lib\json\decoder.py", line 382, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 2 (char 1)
>>>

有什么想法吗?

【问题讨论】:

  • Json 键和值必须放在双引号内..

标签: python json configparser


【解决方案1】:

这不是有效的 JSON;与 Python dicts 不同,JSON 非常严格——你总是需要使用双引号。

namespace = {"pro1":"http://pro1/go","pro2":"http://pro2/go","pro3":"http://pro3/go"}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多