json 请求库:在参数中传递布尔值

mwyxok5s  于 2023-11-20  发布在  其他
关注(0)|答案(1)|浏览(85)

我有这样一段代码,它将请求发送给一个API

request_parameters = {
    "headers": myheaders,
    "params": { "myparam": True }
}        

response = requests.get(myurl, **request_parameters)

字符串
response.url的值是myurl?myparam=True-但API需要的是字符串"true"
我真的必须手动将dict中的所有布尔值转换为字符串"false""true"吗?没有更好的方法吗?我希望requests库在将其转换为字符串之前将其转换为json。

aij0ehis

aij0ehis1#

这是我现在的解决方案:

def helper_convert_booleans_in_dict_to_lowercase_strings(d):
    for k, v in d.items():
        if isinstance(v, bool):
            d[k] = str(v).lower()
        elif isinstance(v, list):  # check if the value is a list
            d[k] = [str(item).lower() if isinstance(item, bool) else item for item in v]
    return d

字符串
然后我可以做:

request_parameters = {
    "headers": myheaders,
    "params": helper_convert_booleans_in_dict_to_lowercase_strings({ "myparam": True })
}


但是我讨厌它。有更好的主意吗?还有其他的数据库会导致愚蠢的事情吗?

相关问题