问题摘要:
我正在使用 requests.get 调用 API。返回的 JSON 对象作为 JSON 字典保存到变量中:
data = json.loads(response.text)
我需要访问该字典,然后替换其键值之一,然后需要将新字典发布回 API。我通过创建一个函数来尝试这个。该值最初是“False”,我需要将其更改为“True”:
def updatedata(data):
k = 'my_key'
for k, v in data.items():
if k == 'my_key':
data[v] = 'True'
response = requests.get(my_URL, headers=my_headers)
data = json.loads(response.text)
updatedata(data)
newlibary = updatedata()
print(newlibrary)
出现的问题是我无法弄清楚如何在不再次调用原始 JSON 库的情况下更新 JSON 库。如何执行通常的 request.get,然后使用我的函数更改我需要更改的值,然后再次将其 POST 到新的 API 调用(如 requests.post)?
最佳答案
您的示例不会替换该键,而是使用原始键中的值创建一个新条目。如果您需要简单地更新它,则检查键是否在字典中,如果是则更改它,然后返回新结果。另外,您不需要带有请求的 json 库。
import requests
def updatedata(data, key, new_value):
if key in data:
data[key] = new_value
return data
response = requests.get(my_URL, headers=my_headers)
data = response.json()
response = requests.post(myUrl, json=updatedata(data, 'my_key', True))
关于python - 使用 requests.get 调用 API 后,如何替换返回的 JSON 对象中的键值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54226817/