首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从Python请求中嵌套的JSON参数正确生成URL参数

如何从Python请求中嵌套的JSON参数正确生成URL参数
EN

Stack Overflow用户
提问于 2016-10-27 13:11:26
回答 2查看 2.7K关注 0票数 0

我试图使用请求将许多条件传递给Connectwise。我正在尝试生成一个如下所示的URL

代码语言:javascript
运行
复制
/company/configurations/?pageSize=1000&conditions=id=83500 and type/name="Printer" and name="TEST API PRINTER"

但我似乎只能产生这样的结果:

代码语言:javascript
运行
复制
/company/configurations/?pageSize=1000&conditions=id&conditions=type/name&conditions=name

我的有效载荷是这样的:

代码语言:javascript
运行
复制
parameters = {}
    parameters['conditions'] = {}
    parameters['pageSize'] = 1000
    if db_rid:
        parameters['conditions']['id'] = 83500
    if type_name:
        parameters['conditions']['type/name'] = "Printer"
    if name:
        parameters['conditions']['name'] = "TEST API PRINTER"
requests.get(APIurl, params=parameters)

我哪里出问题了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-28 12:06:43

我创建了一个函数来生成这个条件字符串。

代码语言:javascript
运行
复制
    def _add_condition(self, string, add_string, add_value):
    if string == '':
        if type(add_value) is not str:
            result = '{}={}'.format(add_string, add_value)
        else:
            result = '{}="{}"'.format(add_string, add_value)
    else:
        if type(add_value) is not str:
            result = '{} and {}={}'.format(string, add_string, add_value)
        else:
            result = '{} and {}="{}"'.format(string, add_string, add_value)
    print(result)
    return result
票数 0
EN

Stack Overflow用户

发布于 2016-10-27 13:20:40

你可以试一试,如果你愿意使用urllib.urlencode -

代码语言:javascript
运行
复制
conditions = {"id": 83500, "type/name": "Printer", "name": "TEST API PRINTER"} 
query = {"pageSize": 1000, "conditions": conditions}
params = urllib.urlencode(query)
final_url = str(APIurl) + "&" + str(params)
response = requests.get(url=final_url)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40285489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档