首页 > 解决方案 > 如何在 Python 中的 URL 中传递过滤器参数

问题描述

我在下面作为 URL 参数发送(params = para1)

para1 = (
        ('filter', 'local_ip: \'10.10.10.10\''),  
        )

我想为从 for 循环中获取的本地 IP 发送一个变量。但是语法一直以“ message”:“ Invalid filter expression supplied”的形式出现

代码如下

for k in ip1:
    if ip1 != None:
        para1 = (
                ('filter', 'local_ip: k'), 
          #     ('filter', 'local_ip: \'10.101.168.21\''),  # working when its like this.
                )
        print(para1)
        re2 = requests.get('https://api.example.com/devices/queries/devices/v1', headers=headers2, params=para1)

任何人都可以帮我编写正确的过滤命令吗?

标签: python

解决方案


您忘记在此处转义另一个引用:'local_ip: \'k''->'local_ip: \'k\''

请记住,您可以将字符串括在其中一个'"引号中,因此如果您需要'在字符串中使用,请将整个字符串括起来"以避免混乱的转义:

编辑:

para1 = (
          ('filter', f"local_ip: '{k.rstrip()}'"), 
)

请注意f,在字符串开始之前,{}您可以在其之间编写任何 Python 表达式,并且它的值将被替换为字符串。.rstrip()函数从字符串的右端删除所有空格字符(空格、换行符)。


推荐阅读