简体   繁体   English

从字典列表制作嵌套字典

[英]Making a nested dictionaries from a list of dictionaries

PROBLEM STATEMENT问题陈述

x is an input list of dictionaries which needs to be formatted to y which is also a list of dictionaries, but in this case the key is pickupAddress and the sub dictionary consist of { zipcode,lat,long} x 是需要格式化为 y 的字典输入列表,y 也是字典列表,但在这种情况下,键是 pickupAddress,子字典由 { zipcode,lat,long} 组成

so basically, i want to transform x to y所以基本上,我想将 x 转换为 y

Approach taken采取的方法

  1. have used tuples to store the values and then inserted to a list已使用元组存储值,然后插入到列表中

code screenshot代码截图

 deliveryAddress={} pickupAddress={} l1=[] l2=[] l1_del=[] l2_pick=[] for i in range(len(x)): k1=('zipcode',x[i]['delivery_zip']) l1.append(k1) k2=('longitude',x[i]['delivery_lng']) l1.append(k2) k3=('latitude',x[i]['delivery_lat']) l1.append(k3) k4=('zipcode',x[i]['latitude']) l2.append(k4) k5=('longitude',x[i]['longitude']) l2.append(k5) k6=('latitude',x[i]['zipcode']) l2.append(k6) t1=("pickupAddress",l1) t2=("deliveryAddress",l2) print(l1) print(l2) if i < len(x): print(len(x)) l1_del.append(t1) l2_pick.append(t2) del l1 del l2 l1=[] l2=[]

INPUT输入

LIST_OF_DICTIONARY INPUT LIST_OF_DICTIONARY 输入

CODE SNIPET代码片段

 [{'delivery_zip': '12432', 'delivery_lat': 42.0437, 'delivery_lng': -73.9474, 'distance': 43.81927669168279, 'latitude': 41.6770047, 'longitude': -73.7535413, 'zipcode': 12510}, {'delivery_zip': '12404', 'delivery_lat': 41.8293989, 'delivery_lng': -74.2414092, 'distance': 43.872670571109516, 'latitude': 41.6770047, 'longitude': -73.7535413, 'zipcode': 12510}]

OUTPUT OUTPUT

OUTPUT_FORMAT输出格式

 y=[{ "pickupAddress": { "zipcode": "12510", "latitude": 41.6770047, "longitude": -73.7535413 }, "deliveryAddress": { "zipcode": "12432", "latitude": 42.0437, "longitude": -73.9474 } }, { "pickupAddress": { "zipcode": "12510", "latitude": 41.6770047, "longitude": -73.7535413 }, "deliveryAddress": { "zipcode": "12404", "latitude": 41.8293989, "longitude": -74.2414092 } } ]

output approach1 output 方法1

To transform one list into another list, use a list comprehension:要将一个列表转换为另一个列表,请使用列表理解:

y = [
        {
            "pickupAddress": { "zipcode": obj['zipcode'], "latitude": obj['latitude'], "longitude": obj['longitude']},
            "deliveryAddress": {"zipcode": obj['delivery_zip'], "latitude": obj['delivery_lat'], "longitude": obj['delivery_lng'] }
        }
        for obj in x
    ]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM