2016-10-27 11 views
0

リクエストを使用してConnectwise REST APIに多くの条件を渡そうとしています。私はPythonリクエストでネストされたJSONパラメータからURLパラメータを正しく生成するにはどうすればいいですか?

/company/configurations/?pageSize=1000&conditions=id=83500 and type/name="Printer" and name="TEST API PRINTER" 

以下のようなURLを生成しようとしているが、私はこれだけを生成することができるように見える:

/company/configurations/?pageSize=1000&conditions=id&conditions=type/name&conditions=name 

私のペイロードは次のようになります。

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) 

午前私は間違っている?

+0

元のurlの "conditions"の値は、長い文字列の1つ、id = 83500、type/name = "Printer"、name = "TEST API PRINTER"です。それはある種の魔法のネストされたパラメータではありません。あなたは 'conditions'パラメータをその文字列と同じに設定するだけです。 – larsks

+0

文字列 'parameters ['conditions'] = 'id = 83500 and ...' ' – furas

+0

私はそれが当てはまるかもしれないと思った、私は私が入れてくれる文字列を構築するための関数を構築した以下の答え。 明快に感謝します! – Awebb

答えて

1

あなたはurllib.urlencode使用に開かれている場合、これを試してみることができ -

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) 
0

を、私は、このための条件文字列を生成する関数を作成しました。

関連する問題