2016-12-30 81 views
-1

我想爲我的google電子表格api指定一個名稱。這是在「標題」鍵值中完成的。我已經嘗試了下面的內容,但是它爲現有的json添加了一個新的密鑰。有沒有辦法到達"title": ""並使用new_date項目更新該值?在python中更新Json值

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'}}}]} 
+2

只需按照對嵌套字典的引用:'res ['requests'] [0] ['addSheet'] ['properties'] ['title'] = new_date'。 –

+0

非常感謝你@Martijn Pieters – Franky

+0

這與'json'有什麼關係? –

回答

5

從你提到的結構來看,你需要修改的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'是字典中的關鍵字,它是中列表中項目的值指數
  • 'properties'在上述詞典
  • 'title'關鍵是在上述dictonary的關鍵,和一個你需要根據您的要求
1

你是不正確索引你的JSON對象,並添加一個名爲新鑰匙title',而你試圖更新數組內的值。在你的情況下,你應該訪問res['requests'][0]['addSheet']['properties']['title'] = new_date

0

我現在意識到我可以直接通過我的變量在JSON。

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