python - 如何将列表列表转换为python中的对象列表?
问题描述
我正在使用python 3.7。我有一个数组数组:
[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
我怎样才能使它成为一个对象数组?
[
{
name:1,
surname:2,
price:3,
location:4
},
{
name:5,
surname:6,
price:7,
location:8
},
{
name:9,
surname:10,
price:11,
location:12
}
]
我试着用
array=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
json_str = json.dumps(array)
但它不起作用。
解决方案
如果我们阅读以下文档json.dumps
:
使用此转换表将 obj 序列化为 JSON 格式的 str。
这不是我们想要的。我们希望将您的列表列表转换为字典列表,其中的键['name', 'surname', 'price', 'location']
与每个子列表一起压缩。
一个简单的解决方案是zip()
在列表理解中使用:
lst = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
keys = ['name', 'surname', 'price', 'location']
print([dict(zip(keys, sublst)) for sublst in lst])
输出:
[{'name': 1, 'surname': 2, 'price': 3, 'location': 4}, {'name': 5, 'surname': 6, 'price': 7, 'location': 8}, {'name': 9, 'surname': 10, 'price': 11, 'location': 12}]
注意:这假设压缩列表的长度相同。否则我们可以使用itertools.zip_longest
压缩不均匀长度的列表。
推荐阅读
- firefox-addon - Firefox 扩展调试器显示“此页面没有来源”
- c# - 如何通过分配具有相似字段的其他对象来创建对象
- python - 返回类实例时的 Numpydoc 样式约定
- android-fragments - 如何在 Java 项目中使用 NavigationExtensions.kt?
- c - 是否有受 setlocale() 影响的函数的完整列表?
- swift - 如何旋转具有固定锚点的 SCNNode?
- scala - 在 spark scala 中通过 cuid 聚合和求和向量稀疏
- python - 将 2 个列表与 ref 与元素的位置进行比较?
- ruby-on-rails - Rails 路由不会取消订阅控制器操作
- typescript - 在发送 axios 请求之前删除 cookie 中的 access_token