更新 python 中的 Json 值

Update Json value in python

我正在尝试为我的 google 电子表格 api 指定一个名称。这是在 'title' 键值中完成的。我尝试了下面的方法,但它为现有的 json 添加了一个新密钥。有没有办法到达 "title": "" 并使用 new_date 项更新该值?

prev_date =  datetime.date.today()-datetime.timedelta(1)
new_date = str(prev_date.isoformat())
res = {
  "requests": [
    {
      "addSheet": {
        "properties": {
          "title": ""
        }
      }
    }
  ]
}
res['title'] =  new_date
print (res)

这是输出:

{'requests': [{'addSheet': {'properties': {'title': ''}}}], 'title': '2016-12-29'}

这就是我想要的:

{'requests': [{'addSheet': {'properties': {'title': '2016-12-29'}}}]}

您在尝试更新数组中的值时错误地索引了您的 JSON 对象并在对象的根目录中添加了一个名为 'title' 的新键。在您的情况下,您应该访问 res['requests'][0]['addSheet']['properties']['title'] = new_date

根据您提到的结构,您需要修改的 title 密钥比您提供的密钥嵌套更多。

您需要进行以下更改:

prev_date =  datetime.date.today()-datetime.timedelta(1)
new_date = str(prev_date.isoformat())
res = {
  "requests": [
    {
      "addSheet": {
        "properties": {
          "title": ""
        }
      }
    }
  ]
}
res['requests'][0]['addSheet']['properties']['title'] =  new_date
print (res)

其中:

  • 'requests' 值是 list
  • 0 是列表中的第一项(也是唯一的一项)
  • 'addSheet' 是字典中的键,即 0 索引
  • 中列表中项目的值
  • 'properties'是上面字典中的key
  • 'title'是上面字典中的key,需要的根据自己的需要

我现在意识到我可以直接在 json 中传递我的变量。

prev_date =  datetime.date.today()-datetime.timedelta(1)
new_date = str(prev_date.isoformat())
req = {
"requests": [
{
"addSheet": {
"properties": {
"title": new_date
}
}