[英]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.