在 python 请求中传递一个字符串

pass a string in python requests

我有一个函数需要将一些 ID 作为逗号分隔传递给 url 字符串。

我的代码:

def shipment(self, orderItemIds):
    url = "https://api.flipkart.net/sellers/orders/shipments"
    payload = {'orderItemsIds':orderItemIds}
    return self.session.get(url, data=payload)

我需要传递 id1、id2、id3 以便我得到 link 作为:

https://api.flipkart.net/sellers/orders/shipments?orderItemsIds={id1,id2...}

我试图将它作为字符串传递。也作为一个列表。但是没有用。

oid = 'id1,id2,id3'                     # or
oid = ['id1',id2'','id3']

怎么做?

我传递了一个 id 作为 oiids = '230501592'。 在 运行 response.url 上,它给了我:

https://api.flipkart.net/sellers/orders/shipments?orderItemsIds

表明url字符串中没有传递参数值。

您可以在python请求库中轻松发送get参数-

data = {
    'orderItemsIds': ['id1', 'id2', 'id3']
}

response = requests.get(url, data = data)

我相信你想要的是这个(其中 orderItemIds 是一个字符串列表):

def shipment(self, orderItemIds):
    url = "https://api.flipkart.net/sellers/orders/shipments"
    params = {'orderItemsIds': ','.join(orderItemIds)}
    return self.session.get(url, params=params)

和你问题中的版本不同的是,orderItemIds假设是一个字符串列表,用逗号连接,data关键字换成了params,是对的GET 请求的选择。