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

URL查询转换:LoopBack REST API filter参数编码方式及Python实现方案

问题解答

参数转换的正式名称

这种转换的正式名称是 URL百分号编码(URL Percent Encoding),也常简称为URL编码。该编码规则的作用是将URL/HTTP查询字符串中不允许直接出现的保留字符、非ASCII字符等,转换为%加两位十六进制字符的标准格式,确保参数在网络传输过程中不会被歧义解析。你这里的场景是把JSON字符串作为查询参数值传递,JSON中的大括号、双引号、冒号等都属于需要编码的字符,因此需要做上述转换。

Python实现方案

Python内置标准库和常用第三方库都有现成的实现,不需要自己写编码逻辑:

1. 内置标准库实现

使用json模块把字典转为JSON字符串,再用urllib.parse.quote做URL编码即可:

import json
from urllib.parse import quote

# 构造filter的查询条件
filter_content = {
    "where": {"StartDate": {"gte": "2021-01-01T00:00:00.000Z"}},
    "offset": 0,
    "limit": 100,
    "order": "id DESC"
}
# 转为JSON字符串后编码
encoded_filter = quote(json.dumps(filter_content))
# 拼接得到最终请求URL
req_url = f"https://你的接口地址?filter={encoded_filter}"

2. 第三方requests库实现(更简便)

如果用常用的requests库发请求,不需要手动做编码,只需要把转好的JSON字符串放到params参数中,库会自动完成URL编码处理:

import requests
import json

filter_content = {
    "where": {"StartDate": {"gte": "2021-01-01T00:00:00.000Z"}},
    "offset": 0,
    "limit": 100,
    "order": "id DESC"
}
resp = requests.get(
    url="https://你的接口地址",
    params={"filter": json.dumps(filter_content)}
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 09:33:04