PUT-запрос Python со сложным JSON - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь сделать запрос PUT с помощью запросов Python.Я видел несколько других постов, и, насколько я могу судить, я делаю это правильно.Тем не менее, мой JSON на сервере не обновляется (несмотря на получение 200 ок для ответа).

Я уверен, что URL-адрес правильный и принимает GET или PUT (без POST).Я могу успешно получить с URL.

Вот JSON, возвращенный из r.json () (после выполнения запроса GET):

{u'items': [{u'name': u'cm_yarn_container_usage_job_pool', u'value': u'yarn'},
            {u'name': u'cm_yarn_container_usage_job_user', u'value': u'yarn'},
            {u'name': u'cm_yarn_enable_container_usage_aggregation',
             u'value': u'true'},
            {u'name': u'hadoop_secure_web_ui', u'value': u'true'},
            {u'name': u'hdfs_service', u'value': u'hdfs'},
            {u'name': u'yarn_core_site_safety_valve',
             u'value': u'long string here'},
            {u'name': u'yarn_fs_scheduled_allocations',
             u'value': u'{"long": "unicode string here"}'},
            {u'name': u'yarn_nodemanagers_healthy_thresholds',
             u'value': u'{"warning":80,"critical":75}'},
            {u'name': u'yarn_service_cgroups', u'value': u'true'},
            {u'name': u'yarn_service_lce_always', u'value': u'true'},
            {u'name': u'zookeeper_service', u'value': u'zookeeper'}]}

Я могу извлечь поле, котороеЯ хочу вот так:

>>> x['items'][7]['value']
u'{"warning":80,"critical":75}'

Теперь я пытаюсь обновить этот словарь Unicode следующим образом: u'{"warning":79,"critical":75}'}

Я использую модуль запросов Python 2 (Python2 - это все, что разрешенона сервере).Вот как я пытаюсь обновить JSON на сервере:

url = "http://nodename:7180/api/v6/clusters/<cluster-name>/services/yarn/config"
id , password = '', ''
payload = {u'items': [{u'name': u'yarn_nodemanagers_healthy_thresholds', u'value': u'{"warning":79,"critical":75}'}]}
r = requests.put(url, json=payload, auth=(id, password))

Этот запрос выглядит правильно?Я пробовал многочисленные варианты, но все еще ничего не обновляет JSON на сервере.Спасибо.

...