我有一個這樣的json:
{
"Location": True,
"adddress": [
{
"street1": " 1 58 4 16"
},
{
"sttreet2": " 3 76 57 12"
},
]
}
我想將 10 添加到 street1、street2 的最后一個資料 ....所以輸出看起來像這樣如何實作這一點:
預期輸出:
{
"Location": True,
"adddress": [
{
"street1": " 1 58 4 26"
},
{
"sttreet2": " 3 76 57 22"
},
]
}
uj5u.com熱心網友回復:
假設dct是你的字典。然后:
for d in dct['adddress']:
k = next(iter(d)) # assume there's only one key in d
vals = d[k].split()
vals[-1] = str(int(vals[-1]) 10)
d[k] = ' '.join(vals)
我所做的假設是dct['adddress']串列中的每個字典只包含一個鍵。
結果:
>>> dct
{'Location': True, 'adddress': [{'street1': '1 58 4 26'}, {'sttreet2': '3 76 57 22'}]}
uj5u.com熱心網友回復:
假設資料存盤在變數中json
json = { "Location": True, "adddress": [ { "street1": " 1 58 4 16" }, { "sttreet2": " 3 76 57 12" }, ] }
由于名稱不同(street1,sttreet2),因此有多種方法。
一,可以用于更多情況的,如下
for i in range(len(json['adddress'])):
for key in json['adddress'][i]:
json['adddress'][i][key] = json['adddress'][i][key][:-2] str(int(json['adddress'][i][key][-2:]) 10)
[Out]:
{'Location': True,
'adddress': [{'street1': ' 1 58 4 26'}, {'sttreet2': ' 3 76 57 22'}]}
另一種是更手動的,并且需要更改相應的值。例如,對于street1,它將如下
json['adddress'][0]['street1'] = json['adddress'][0]['street1'][:-2] str(int(json['adddress'][0]['street1'][-2:]) 10)
[Out]:
{'Location': True,
'adddress': [{'street1': ' 1 58 4 26'}, {'sttreet2': ' 3 76 57 12'}]}
因為sttreet2它將如下
json['adddress'][1]['sttreet2'] = json['adddress'][1]['sttreet2'][:-2] str(int(json['adddress'][1]['sttreet2'][-2:]) 10)
[Out]:
{'Location': True,
'adddress': [{'street1': ' 1 58 4 16'}, {'sttreet2': ' 3 76 57 22'}]}
uj5u.com熱心網友回復:
使用此代碼:
def get(num):
global data
key = data["adddress"][num].keys()[0]
sp = [int(i) for i in data["address"][num][key].split()]
sp[-1] = 10
sp = [str(i) for i in sp]
data["adddress"][num][key][num][key] = " ".join(sp)
for i in range(len(data["address"])):
get(i)
此代碼回傳:
{'Location': True, 'adddress': [{'street1': '1 58 4 26'}, {'sttreet2': '3 76 57 22'}]}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/522356.html
上一篇:不知道物件位置的陣列斷言
