python boolean value to json string with quote



all,

我遇到了一个要求的问题。我通常知道什么时候将python boolean更改为json格式,然后使用以下解决方案:

>>>data = {'key1': True}
>>>data_json = json.dumps(data)
>>>print data_json
{'key1': true}

我遇到的问题是,我需要将其作为{'key1':'true'},带Quote'或double引用的字符串。P>

Zhihong

在调用json.dumps(data)之前,请相应地处理您的数据:

for key in data:
    if type(data[key]) is bool:
        data[key] = str(data[key]).lower()

如果您的密钥未嵌套,则只是str(value).lower()的简单操作,否则您必须递归地进行。

# this should work for basic data types
def convert_booleans(value):
    if isinstance(value, dict):
        return {key: convert_booleans(val) for key, val in value.items()}
    elif isinstance(value, bool):
        return str(value).lower()
    elif hasattr(value, '__iter__'):
        return map(convert_booleans, value)
    return value
converted_data = convert_booleans(data)
print(json.dumps(converted_data))
话虽如此,这不是理想的事情。JSON对象对布尔值具有特殊的含义,不应将其视为字符串。如果可能的话,您最好尝试说服客户的API。客户最有可能将结果数据作为字符串而不是JSON处理,因此很难解析数据。

最新更新