将一个单独的JSON数据列表合并到一个JSON数据段中

2024-05-17 12:28:33 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,我试图打开一个单独的JSON数据列表:

[[{'id': 1, 'name': 'pencil', 'description': '2b or not 2b, that is the question'}], [{'id': 2, 'name': 'oil pastel', 'description': None}], [{'id': 3, 'name': 'gouache', 'description': None}], [{'id': 4, 'name': 'paper', 'description': None}]]

一段JSON数据:

{'id': 1, 'name': 'pencil', 'description': '2b or not 2b, that is the question'}, {'id': 2, 'name': 'oil pastel', 'description': None}, {'id': 3, 'name': 'gouache', 'description': None}, {'id': 4, 'name': 'paper', 'description': None}, {'id': 5, 'name': 'coloured pencil', 'description': None}

已经挣扎了几个小时了。有人有什么想法吗


Tags: orthe数据namenoneidjsonthat
3条回答

operator一起使用functools

 j = [[{'id': 1, 'name': 'pencil', 'description': '2b or not 2b, that is the question'}], [{'id': 2, 'name': 'oil pastel', 'description': None}], [{'id': 3, 'name': 'gouache', 'description': None}], [{'id': 4, 'name': 'paper', 'description': None}]]


import functools
import operator
functools.reduce(operator.iadd,j,[])

输出:

[{'id': 1,
'name': 'pencil',
  'description': '2b or not 2b, that is the question'},
 {'id': 2, 'name': 'oil pastel', 'description': None},
 {'id': 3, 'name': 'gouache', 'description': None},
 {'id': 4, 'name': 'paper', 'description': None}]

使用简单列表理解

[y for x in list_of_lists for y in x]

输出:

[{'description': '2b or not 2b, that is the question', 'id': 1, 'name': 'pencil'}, {'description': None, 'id': 2, 'name': 'oil pastel'}, {'description': None, 'id': 3, 'name': 'gouache'}, {'description': None, 'id': 4, 'name': 'paper'}]

使用^{}

>>> list(itertools.chain.from_iterable(j))

或者一份清单

>>> [x[0] for x in j] # Assuming there is only one item in each list

两种输出

[{'id': 1,
  'name': 'pencil',
  'description': '2b or not 2b, that is the question'},
 {'id': 2, 'name': 'oil pastel', 'description': None},
 {'id': 3, 'name': 'gouache', 'description': None},
 {'id': 4, 'name': 'paper', 'description': None}]

相关问题 更多 >