This topic created in 2368 days ago, the information mentioned may be changed or developed.
比如这样的数据
[{"id":"abc","name":"x","pf":"1"},{"id":"abc","name":"y","pf":"2"},{"id":"abc","name":"z","pf":"1"}]
怎么快速的变成
{"id":"abc","data":[{"name":"x","pf":"1"},{"name":"y","pf":"2"},{"name":"z","pf":"1"}]}
通过遍历重组没有问题,就是觉得是不是太慢了
13 replies • 2019-11-28 12:03:23 +08:00
 |
|
1
diggerdu Nov 23, 2019 via iPhone
用 pandas 吧
|
 |
|
2
loliordie Nov 23, 2019
把单条数据的处理函数拆出来扔给 celery 这样的多线程框架, 如果不是上百 G 这种规模一会就处理完了
|
 |
|
3
66450146 Nov 23, 2019 2
如果对字典列表进行快速的合并,这个合并就会很快
|
 |
|
4
mskf Nov 23, 2019
对于除了 id 主键之外的字段的处理你是用的 data 字段,但是怎么知道哪些是主键哪些不是,如果有外键需不需要加进 data,如果多余字段只有一个需不需要用 data 数组存储,这些你都必须要明确
|
 |
|
5
widewing Nov 23, 2019 via Android
头大 又看到 如何->如果 就很难受
|
 |
|
6
imn1 Nov 23, 2019
昨天问字典的那个是不是你?
|
 |
|
9
cherbim Nov 23, 2019 via iPhone
这个昨天有人问过
|
 |
|
10
yucongo Nov 27, 2019
lst = [{"id":"abc","name":"x","pf":"1"},{"id":"abc","name":"y","pf":"2"},{"id":"abc","name":"z","pf":"1"}]
data = [dict(zip([*lst[idx].keys()][1:], [*map(lambda elm: lst[idx].get(elm), [*lst[idx].keys()][1:])])) for idx in range(3)]
{"id":"abc","data":data} #
|
 |
|
11
yucongo Nov 27, 2019
简单一点:
data = [(lambda x: x.pop('id') * False or x)(elm) for elm in lst] {"id":"abc","data":data} #
|