布尔序列化和区分大小写的restapi

2024-06-15 06:00:46 发布

您现在位置:Python中文网/ 问答频道 /正文

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

如何应对?我应该在将所有的bool输入requests之前对它们进行预序列化,还是有更干净的方法?在

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

Tags: apirestapijsonfalsetrue序列化paramsurllib
1条回答
网友
1楼 · 发布于 2024-06-15 06:00:46

除非params很大,否则返回一个修改过的副本,而不是改变输入,以防使用相同params对象的代码的其他部分需要实数bool

不要依赖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

相关问题 更多 >