首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将一条数据放入多个数据列表中?Python

如何将一条数据放入多个数据列表中?Python
EN

Stack Overflow用户
提问于 2022-10-04 08:27:33
回答 3查看 57关注 0票数 -2

我想把json数据转换成键值格式,怎么办?

我的数据

代码语言:javascript
运行
复制
data = { 
  "type": "student",
  "age": "17",
  "sex": "male",
}

预期产出

代码语言:javascript
运行
复制
[ 
  { "type": "student", "key": "age", "value": "17"  },
  { "type": "student", "key": "sex", "value": "male"  },
]
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-10-04 08:57:50

您可以使用一个函数来概括您的输出,以防字典中有更多您想要按原样键入的键,或者将它们添加到您的键值对列表中。

代码语言:javascript
运行
复制
def transfrom(data, non_key_value: list, key_value: list):
    base = {key: val for key, val in data.items() if key in non_key_value}
    ouput = [{**base, **{"key": val, "value": data[val]}} for val in key_value]
    return ouput
代码语言:javascript
运行
复制
transfrom(data, non_key_value=["type"], key_value=["age", "sex"])
>>>
[{'type': 'student', 'key': 'age', 'value': '17'},
 {'type': 'student', 'key': 'sex', 'value': 'male'}]
票数 2
EN

Stack Overflow用户

发布于 2022-10-04 08:54:20

我对json不是很熟悉,而且在json包中可能有一个函数来进行这种转换,但是这对您的数据是有效的:

代码语言:javascript
运行
复制
data = { 
  "type": "student",
  "age": "17",
  "sex": "male",
}

out = []

for key, value in data.items():
    d = {"type": data["type"]}
    if key != "type":
        d["key"] = key
        d["value"] = value
        out.append(d)
out

退出:

代码语言:javascript
运行
复制
[{'type': 'student', 'key': 'age', 'value': '17'},
 {'type': 'student', 'key': 'sex', 'value': 'male'}]
票数 2
EN

Stack Overflow用户

发布于 2022-10-04 09:38:41

下面是一种使用流行方法和|操作符来完成此操作的方法:

代码语言:javascript
运行
复制
data = {"type": "student", "age": "17", "sex": "male"}
base = {"type": data.pop("type")}
output = [base | {"key": key, "value": value} for key, value in data.items()]
print(output)

输出:

代码语言:javascript
运行
复制
[{'type': 'student', 'key': 'age', 'value': '17'}, {'type': 'student', 'key': 'sex', 'value': 'male'}]

此代码使用pop方法从字典中删除键并返回它,这意味着"base“变为{"data": "student"},"data”变为{"age": "17", "sex": "male"}

然后,它使用一个列表理解,迭代"data“中剩余的键和值,使用|操作符将它们与"base”中的键/值对组合起来,每次创建一个新字典。

注意:|操作符是在Python3.9中引入的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73945033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档