gpt4 book ai didi

python - 使用 python 从 JSON 字典中提取多个元素

转载 作者:行者123 更新时间:2023-12-01 09:04:12 25 4
gpt4 key购买 nike

在 Python 中,我的 JSON 格式如下:

lists = [
{
"id": 1,
"data": {
"id": "1",
"title": "Title1",
"list_category": "green",
"list_group": ["foo", "bar"],
"tag_Number": ["One","Three","Four","Seven"],
"tag_ABCD": ["B", "C", "D", "E"]
}
},
{
"id": 2,
"data": {
"id": "32",
"title": "Title32",
"list_category": "blue",
"list_group": ["foo2", "bar2"],
"tag_Number": ["One","Three","Four","Seven"],
"tag_ABCD": ["B", "C", "D", "E"]
},
...

我想编写不同的函数来从这些列表中提取不同类型的数据。例如,为了提取标题和 id,我编写了以下函数:

 def getTitle():
index_list = []
index_dict = dict()
for x in checklists:
val = ast.literal_eval(x["data"])
Index = dict(id= x['id'], title = val["title"])
index_dict[x['id']]=Index
return index_dict

我的问题是,当我尝试提取其他值时,例如tag_ABCD,我尝试按以下方式更改我的函数:

 def getTag():
index_list = []
index_dict = dict()
for x in checklists:
val = ast.literal_eval(x["data"])
_val = ast.literal_eval(x["val"])
Index = dict(id= x['id'], tag = _val["tag_ABCD"])
index_dict[x['id']]=Index
return index_dict

但它不会返回正确的元素。

另一个问题(附带问题..):当我想向字典添加第三个元素时,为什么无法返回我的数据?

 def getTitle():
index_list = []
index_dict = dict()
for x in checklists:
val = ast.literal_eval(x["data"])
Index = dict(id= x['id'], title = val["title"], list_category = val["list_category"])
index_dict[x['id']]=Index
return index_dict

对于我的每一个变量,我都会遇到相同的错误:

KeyError: 'list_category'

最佳答案

编写所需函数的一个好方法是使用列表理解和字典理解。请参阅此处了解它们的工作原理:https://www.smallsurething.com/list-dict-and-set-comprehensions-by-example/

代码可能如下所示:

def title_id(the_list):
return {id: title for (id, title) in [(i["id"], i["title"]) for i in the_list]}

至于您关于 list_category 的错误,我敢打赌您列表中的其中一个字典没有该键。要查看发生了什么,请在出现关键错误时使用 try- except 和 print val。

关于python - 使用 python 从 JSON 字典中提取多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52209389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com