python - 使用 requests.get 调用 API 后,如何替换返回的 JSON 对象中的键值?

标签 python python-3.x python-requests

问题摘要:

我正在使用 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/

相关文章:

python-3.x - 从文本文件中读取多个 URL,处理每个网页,并抓取其中的内容

python - 创建一个自定义的 sklearn TransformerMixin 来一致地转换分类变量

python - 从 Django View 返回 HttpResponse 后触发函数

python - 在 Python 中重新加载现实生活中的模块?

python-3.x - 将 docker 容器环回绑定(bind)到主机环回

python - 如何使用 python 使用 hmac-sha1 生成 oauth 签名?

python - 我怎样才能找到数据中存在弯曲/剪切的点?

python - 两点之间的方位

html - BeautifulSoup 和 prettify() 函数

python - 从curl请求转换为Python时遇到问题