希望這是一個簡單的。
我有以下json:
{
'listTitle': 'dsadasdsa',
'chapters': 'testchapter',
'sublist': [
{
'subListCreator': 'jan',
'item': [
{
'itemTitle': 'dasdasd',
'itemContext': 'None'
}
]
}
]
}
其中我可以通過執行以下操作列印我的testchapter值:
print(data['chapters'])
問題來了,我想做兩件事:
如果存在空的章節字串,請洗掉完整的章節元素:
'chapters': ''將章節轉換為包含 testchapter-value 的串列。
情景 1 的預期結果:
{
'listTitle': 'dsadasdsa',
'sublist': [
{
'subListCreator': 'jan',
'item': [
{
'itemTitle': 'dasdasd',
'itemContext': 'None'
}
]
}
]
}
情景 2 的預期結果:
{
'listTitle': 'dsadasdsa',
'chapters': [
'testchapter'
],
'sublist': [
{
'subListCreator': 'jan',
'item': [
{
'itemTitle': 'dasdasd',
'itemContext': 'None'
}
]
}
]
}
嘗試了一堆東西,但到目前為止沒有成功。要么它看起來像一個串列,但它仍然是一個字串而不是串列。或者所有字串字符都轉換為單獨的串列元素等。
希望你能幫我!:)
uj5u.com熱心網友回復:
如果可以的話,在適當的位置改變 dict 是最簡單的方法:
if data['chapters']:
data['chapters'] = [data['chapters']]
else:
data.pop('chapters')
通過理解構建新的 dict 可能如下所示:
{k: [v] if k == 'chapters' else v for k, v in data.items() if v or k != 'chapters'}
聽起來您無法找到的關鍵是要將單個值v轉換為包含該值的串列,您需要使用串列文字運算式[v]。如果你這樣做list(v),你會得到一個串列,其中包含迭代中的每個專案v(所以如果v是一個字串,你會得到一個包含其各個字符的串列)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/429461.html
上一篇:strcpy,從strtok到可變長度結構字串的賦值
下一篇:獲取字串中的特定字串
