Как удалить или изменить элемент из полученного JSON вызова API? - PullRequest
0 голосов
/ 25 февраля 2020

Как Python новичок ie, я, кажется, борюсь с вариантом использования, который мне нужно реализовать. Случай использования заключается в том, что мне нужно получить некоторые данные с помощью вызова REST, а затем отправить эти данные (измененные) в другой API REST, но затем с некоторыми полями, например, переименовать свойство или удалить свойство .

# get the data
service1 = requests.get(http://myrestservice_1.com)

# modify the data?
# delete or rename a property?

# send the data
service2 = request.post(url=http://myrestservice_2.com, json=service1.json())

Пример данных, которые я получаю с помощью вызова Rest:

{
  "prop1" : "value1",
  "prop2" : "value2"
{

Как, например, удалить или переименовать значение prop2 из JSON когда нужно отправить данные в другую службу?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 25 февраля 2020

requests.get() возвращает объект Response, который, помимо прочего, содержит полезную нагрузку, которую вы хотите декодировать. Вы можете сделать это самостоятельно:

data = json.loads(service1.text)

или позволить requests сделать это за вас.

data = service1.json()

После того, как вы изменили data по мере необходимости, вам необходимо повторно закодировать структуру данных. Опять же, вы можете сделать это вручную

service2 = request.post(url=http://myrestservice_2.com, data=json.dumps(data))

или позволить requests сделать это за вас.

service2 = request.post(url=http://myrestservice_2.com, json=data)
0 голосов
/ 25 февраля 2020
response = requests.get()

возвращает вам объект Response. Оттуда

response.text

возвращает вам строку с ответом API REST.

response.status_code

возвращает вам код состояния HTTP только что сделанного вами вызова.

И,

response.json()

дает вам Python диктовку, с которой вы можете взаимодействовать.

...