Python 布尔序列化和区分大小写的RESTAPI';s

Python 布尔序列化和区分大小写的RESTAPI';s,python,python-requests,urllib,Python,Python Requests,Urllib,我遇到了一个区分大小写的RESTAPI(Pingdom)。Python的urllib将所有布尔值序列化为“True”或“False”。然而,API只接受小写的“true”和“false”,这与JSON输出一致 如何应对?我应该在将所有bool发送到请求之前对它们进行预序列化,还是有更干净的方法 def _serializeBooleans(params): for k, v in params.iteritems(): if isinstance(v, bool):

我遇到了一个区分大小写的RESTAPI(Pingdom)。Python的
urllib
将所有布尔值序列化为“True”或“False”。然而,API只接受小写的“true”和“false”,这与JSON输出一致

如何应对?我应该在将所有bool发送到
请求之前对它们进行预序列化,还是有更干净的方法

def _serializeBooleans(params):
    for k, v in params.iteritems():
        if isinstance(v, bool):
            params[k] = str(v).lower()

除非
params
较大,否则返回修改后的副本,而不是对输入进行变异,以防使用相同
params
对象的代码的其他部分需要real
bool
s

不要依赖于
str(v)
返回特定字符串。在代码中显式地放入需要这些特定字符串的文档

def prepare_params(params):
    prepared = {}
    for name, value in params.iteritems():
        if value is True:
            value = 'true'
        elif value is False:
            value = 'false'
        prepared[name] = value
    return prepared

除非
params
较大,否则返回修改后的副本,而不是对输入进行变异,以防使用相同
params
对象的代码的其他部分需要real
bool
s

不要依赖于
str(v)
返回特定字符串。在代码中显式地放入需要这些特定字符串的文档

def prepare_params(params):
    prepared = {}
    for name, value in params.iteritems():
        if value is True:
            value = 'true'
        elif value is False:
            value = 'false'
        prepared[name] = value
    return prepared

除非
params
较大,否则返回修改后的副本,而不是对输入进行变异,以防使用相同
params
对象的代码的其他部分需要real
bool
s

不要依赖于
str(v)
返回特定字符串。在代码中显式地放入需要这些特定字符串的文档

def prepare_params(params):
    prepared = {}
    for name, value in params.iteritems():
        if value is True:
            value = 'true'
        elif value is False:
            value = 'false'
        prepared[name] = value
    return prepared

除非
params
较大,否则返回修改后的副本,而不是对输入进行变异,以防使用相同
params
对象的代码的其他部分需要real
bool
s

不要依赖于
str(v)
返回特定字符串。在代码中显式地放入需要这些特定字符串的文档

def prepare_params(params):
    prepared = {}
    for name, value in params.iteritems():
        if value is True:
            value = 'true'
        elif value is False:
            value = 'false'
        prepared[name] = value
    return prepared

谢谢你的洞察力!谢谢你的洞察力!谢谢你的洞察力!谢谢你的洞察力!