使用json.dumps()(Python)剥离自动生成的引号

时间:2014-06-19 19:41:16

标签: python json

我通过传入OrderedDict使用json.dumps()方法。 (参见下面的语法)。它正确地执行了,但是有一个特定字段"labels":始终用" "(引号)围绕输入,我不需要它。

desiredJson = OrderedDict([('type', ""), ('labels', '' ), ('bgColor', ''), ('borderColor', '')])

for (category_type, updatedLabels, bgColors, borderColors) in zip(type_, labels_, bgColor_, borderColor_):
    print category_type+updatedLabels
    desiredJson["type"] = category_type
    desiredJson["labels"] = '["%s", "%s"]' % (category_type, updatedLabels)
    desiredJson["bgColor"] = bgColors
    desiredJson["borderColor"] = borderColors

    json.dumps(desiredJson, sort_keys = False, indent = 4, separators=(',' , ': '))

这是它的样子:(只是一个样本块,它输出很多)

{
"type": "Overall",
"labels": "[\"Overall\", \"Over\"]",
"bgColor": "#ff7f8d",
"borderColor": "darken"
}

我需要它遵循以下格式:

{
"type": "Overall",
"labels": ["Overall", "Over"], // NOTE DIFFERENCE
"bgColor": "#ff7f8d",
"borderColor": "darken"
}

**将列表插入dic **

{
"type": "Overall",
"labels": [
    "Overall",
    "Over"
],
"bgColor": "#ff7f8d",
"borderColor": "darken"
}

1 个答案:

答案 0 :(得分:2)

这是因为您将元素创建为字符串:

desiredJson["labels"] = '["%s", "%s"]' % (category_type, updatedLabels)

如果你想让它成为JSON中的数组,你应该把它设置为Python列表:

desiredJson["labels"] = [category_type, updated_labels]