You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask应用中避免花括号被转义为HTML Unicode的问题

Flask API调用URL格式化问题

问题场景

在Flask应用中调用API时,尝试生成包含带前导零银行ID的URL,代码如下:

count = len(bankid)
bankid = "044"
response = requests.get(f"{base_api_url}/banks/" + "{bankid}/branches".format(bankid=f"{{{bankid}:0{count}d}}", headers=headers))

期望生成的目标URL:https://api.flutterwave.com/v3/banks/044/branches

但实际请求的URL被编码为:

GET /v3/banks/%7B044:03d%7D/branches HTTP/1.1" 401 65]

需要解决的核心问题:避免大括号被URL转义,生成符合预期的正确URL。

问题原因

代码中嵌套了多层字符串格式化逻辑,导致format方法将{{{bankid}:0{count}d}}解析为带转义的大括号表达式{044:03d},最终被URL编码为%7B044:03d%7D。

解决方案

根据bankid的实际类型,选择对应的简化写法:

1. 当bankid为字符串类型(当前场景)

直接通过f-string拼接即可,无需额外格式化操作:

bankid = "044"
response = requests.get(f"{base_api_url}/banks/{bankid}/branches", headers=headers)

2. 当bankid为数字类型(如44)

如果需要将数字转为固定长度、带前导零的字符串,直接在f-string中完成格式化:

bankid = 44
target_length = 3  # 目标字符串长度
response = requests.get(f"{base_api_url}/banks/{bankid:0{target_length}d}/branches", headers=headers)

以上写法均可正确生成包含044的目标URL,不会出现大括号转义的问题。

内容的提问来源于stack exchange,提问作者George Udosen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 07:57:21