對于輸入 json
[{
"Name": "John",
"Age": "23",
"Des": "SE"
},
{
"Name": "Rai",
"Age": "33",
"Des": "SSE"
},
{
"Name": "James",
"Age": "42",
"Des": "SE"
}
]
我想過濾掉只有"Des":"SE"true的 json 資料
所需的輸出
[{
"Name": "John",
"Age": "23"
},
{
"Name": "James",
"Age": "42"
}
]
uj5u.com熱心網友回復:
串列理解應該這樣做:
out = [{'Name':d['Name'], 'Age':d['Age']} for d in lst if d['Des']=='SE']
其他方式:
out = [d for d in lst if d.pop('Des')=='SE']
輸出:
[{'Name': 'John', 'Age': '23'}, {'Name': 'James', 'Age': '42'}]
uj5u.com熱心網友回復:
如果每個 json 具有更多元素,則使其更具動態性:
import json
input_str = '[{"Name": "John", "Age": "23", "Des": "SE"}, {"Name": "Rai", "Age": "33", "Des": "SSE"}, {"Name": "James", "Age": "42", "Des": "SE"}]'
input_list = json.loads(input_str)
# If you already converted to a list of dicts, then you don't need the above
# Using pop here removes the key you are using to filter
output = [each for each in input_list if each.pop("Des") == "SE"]
uj5u.com熱心網友回復:
使用 json 模塊,您可以使用 load 加載檔案或使用 load 加載字串。從那里,它充當一個普通的 Python 字典串列,您可以迭代并檢查其鍵。從那里,您只需創建一個與您想要的模式匹配的新字典串列,并洗掉您不再使用的密鑰。例子:
import json
jsonString = """[{
"Name": "John",
"Age": "23",
"Des": "SE"
},
{
"Name": "Rai",
"Age": "33",
"Des": "SSE"
},
{
"Name": "James",
"Age": "42",
"Des": "SE"
}
]"""
jsonList = json.loads(jsonString)
filteredList = []
def CheckDes(dataDict: dict):
if dataDict['Des'] == 'SE':
dataDict.pop('Des')
filteredList.append(dataDict)
print(jsonList)
"""
[
{
'Name': 'John',
'Age': '23',
'Des': 'SE'
},
{
'Name': 'Rai',
'Age': '33',
'Des': 'SSE'
},
{
'Name': 'James',
'Age': '42',
'Des': 'SE'
}
]"""
[CheckDes(dataDict) for dataDict in jsonList]
print(filteredList)
"""[
{
'Name': 'John',
'Age': '23'
},
{
'Name': 'James',
'Age': '42'
}
]
"""
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/402267.html
上一篇:使用for回圈提取字典列
