This topic created in 2547 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
 |
|
用 pandas 吧
|
 |
|
把单条数据的处理函数拆出来扔给 celery 这样的多线程框架, 如果不是上百 G 这种规模一会就处理完了
|
 |
|
如果对字典列表进行快速的合并,这个合并就会很快
|
 |
|
对于除了 id 主键之外的字段的处理你是用的 data 字段,但是怎么知道哪些是主键哪些不是,如果有外键需不需要加进 data,如果多余字段只有一个需不需要用 data 数组存储,这些你都必须要明确
|
 |
|
头大 又看到 如何->如果 就很难受
|
 |
|
昨天问字典的那个是不是你?
|
 |
|
不慢
|
 |
|
这个昨天有人问过
|
 |
|
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} #
|
 |
|
简单一点:
data = [(lambda x: x.pop('id') * False or x)(elm) for elm in lst] {"id":"abc","data":data} #
|
 |
|
@ yucongo #11 研究了一下,看懂了。哎,python 之路还很长啊。
|