从文件导入和使用JSON字符串时的ValueError

时间:2016-03-17 20:59:10

标签: python json file dictionary

我有这样的字典:

{
    'cost' : cost,
    'oLen' : oLen
}

我将此内容写入文件,因此该文件包含:

{'oLen': 32, 'cost': 2048}

后来,我这样做了:

    with open('conf.conf') as f:
        config = json.loads(f.read())
    print config['oLen']

得到这个:

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

如果我将json.loads改为json.dumps,我得到:

TypeError: string indices must be integers, not str

2 个答案:

答案 0 :(得分:2)

您需要在JSON中使用双引号。

如果您使用json.dump将原始字典写入文件,您不必担心它!

>>> with open('output', 'w') as f:
    json.dump({'oLen': 32, 'cost': 2048}, f)

>>> with open('output') as f:
    obj = json.load(f)

>>> print(obj)
{'cost': 2048, 'oLen': 32} 

答案 1 :(得分:1)

您需要使用双重语录

{"oLen": 32, "cost": 2048}

JSON example