簡體   English   中英

正確更新REST API的json文件的字段

[英]Update correctly the fields of the json file for REST API

我正在使用python中的GET使用REST API檢索json文件,並想檢索json文件以更新它的某些值,然后更新該值。 我得到的是以下內容:

 r1 = requests.get(url)

它返回整個json文件。 現在,我想更新json的某些值,並使用PUT REST API調用將其放回去。 我的put命令如下:

requests.put(url, json=r1)

我要更新的字段如下:

r1.json()['a']['a'] = 2 // print r1.json()['a']['a'] ->1
r1.json()['a']['b'] = 2 // print r1.json()['a']['b'] ->1
r1.json()['a']['c'] = 2 // print r1.json()['a']['c'] ->1

我的問題是如何正確更新json的字段?

您應該將其保存為變量,對其進行修改,然后將其發送回

my_json = r1.json()
my_json['a']['a'] = 2
my_json['a']['b'] = 2
my_json['a']['c'] = 2
requests.put(url, json=my_json)

在代碼本質上,您正在執行的操作是調用.json() ,該響應從響應生成一個字典,您實際上並沒有修改響應對象-而是實際上是在修改.json()調用返回的結果。

為了改善bluesummer的答案, response.json()只是json.loads(response.content)的快捷方式,並且每次調用時都會創建一個字典。 IOW這段代碼是什么:

r1.json()['a']['a'] = 2

  • r1.content創建一個字典
  • 更新此字典
  • 最終將其丟棄。

這就是為什么要更新字典時必須保留對該字典的引用(將其分配給變量)的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM