私がやろうとしているのは、私が提供している IP アドレスを取得し、JSON RESTful API から取得している配列を更新するスクリプトを作成することです。配列からデータをうまく引き出すことができます。これまでの私のコードは次のようになります(コードの外観を許してください)
import requests
import json
import sys
pool_name = sys.argv[1]
add_node = sys.argv[2]
url = 'https://<stingray RESTApi>:9070/api/tm/1.0/config/active/pools/' + pool_name
jsontype = {'content-type': 'application/json'}
client = requests.Session()
client.auth = ('<username>', '<password>')
client.verify = 0
response = client.get(url)
pools = json.loads(response.content)
nodes = pools['properties']['basic']['nodes']
今、私はこれを使用して見てきました
client.put(url, <I am stuck>, headers = jsontype)
この時点で、私は現在の Python のノウハウの限界に達しました (ここ数日で学び始めたばかりなので)。このようなものを使用して、収集したデータを配列に追加し、それを PUT しようとすることも検討しました。
updatepool['properties']['basic']['nodes'].append(add_node)
updatepool を印刷すると、私が求めているものが機能していることがわかりますが、それを配列に入れると困惑しました。
どんな助けでも本当に感謝しています。
ありがとう
更新: これは私のコードの更新で、API から 400 応答を受け取ります
#!/usr/bin/python
import requests
import json
import sys
pool_name = sys.argv[1]
#add_node = sys.argv[2]
add_node = u'10.10.10.1:80'
url = 'https://<uri>:9070/api/tm/1.0/config/active/pools/' + pool_name
jsontype = {'content-type': 'application/json'}
client = requests.Session()
client.auth = ('<username>', '<password')
client.verify = 0
response = client.get(url)
pools = json.loads(response.content)
nodes = pools['properties']['basic']['nodes']
data = nodes
data.append(add_node)
print client.put(url,json.dumps(data), headers=jsontype)