You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从包含字典的嵌套列表生成指定格式的Python字典?

Solution to Convert List of Dicts to Unique Keyed Dictionary

To achieve your desired output, we'll iterate over each entry in your original list, create a modified version of each entry (with first_name and surname set to "anonymous"), generate a unique string key for each entry, and build the new dictionary from these key-value pairs.

We'll use Python's uuid module to generate globally unique random keys—this ensures no duplicates even if your original list has entries with the same id. Here's the full code:

import uuid

dict_1 = [
    {'id': '0eb7df70-f319-4562-ab2a-9e641e978b3b', 'first_name': 'Rahx', 'surname': 'Smith ', 'devices': {'os': 'Apple iPhone', 'mac_address': 'f4:af:e7:b7:ab:22', 'manufacturer': 'Apple'}, 'lat': 54.33166199876629, 'lng': -6.277842272724769, 'seenTime': 1582814754000},
    {'id': 'a0bb8d38-0d27-4d7f-acc0-1e850a706b6c', 'first_name': 'Lucy', 'surname': 'Pye', 'devices': {'os': 'Apple iPhone', 'mac_address': 'f8:87:f1:72:4c:4d', 'manufacturer': 'Apple'}, 'lat': 54.33166199876629, 'lng': -6.277842272724769, 'seenTime': 1582814754000},
    {'id': '0eb7df70-f319-4562-ab2a-9e641e978b3b', 'first_name': 'xyx', 'surname': 'dcsdd', 'devices': {'os': 'NOKIA Phone', 'mac_address': '78:28:ca:a8:56:b9', 'manufacturer': 'NOKIA'}, 'lat': 54.33166199876629, 'lng': -6.277842272724769, 'seenTime': 1582814754000},
    {'id': 'a0bb8d38-0d27-4d7f-acc0-1e850a706b6c', 'first_name': 'ddwdw', 'surname': 'sdsds', 'devices': {'os': 'MI Phone', 'mac_address': 'dc:08:0f:3f:57:0c', 'manufacturer': 'MI'}, 'lat': 54.33218267030654, 'lng': -6.27796001203896, 'seenTime': 1582814693000}
]

result_dict = {}

for entry in dict_1:
    # Create modified entry with anonymous names
    modified_entry = {
        "first_name": "anonymous",
        "surname": "anonymous",
        "lat": entry["lat"],
        "lng": entry["lng"],
        "devices": entry["devices"].copy(),  # Shallow copy to avoid altering original data
        "seenTime": entry["seenTime"]
    }
    
    # Generate unique UUID key
    unique_key = str(uuid.uuid4())
    
    # Add to result dictionary
    result_dict[unique_key] = modified_entry

# Optional: Print formatted result to verify
import json
print(json.dumps(result_dict, indent=2))

Key Notes:

  • Unique Keys: uuid.uuid4() generates random, unique identifiers that are perfect for this use case.
  • Preserved Data: All original lat, lng, devices, and seenTime values are retained.
  • Nested Dict Copy: We use .copy() on the devices dict to prevent accidental changes to the original dict_1 entries. If your devices dict has deeper nested structures, use copy.deepcopy() (import the copy module first).

Alternative: Index-Based Keys

If you don't need globally unique keys and prefer simpler identifiers, use index-based keys instead:

result_dict = {}

for idx, entry in enumerate(dict_1):
    modified_entry = {
        "first_name": "anonymous",
        "surname": "anonymous",
        "lat": entry["lat"],
        "lng": entry["lng"],
        "devices": entry["devices"].copy(),
        "seenTime": entry["seenTime"]
    }
    unique_key = f"entry_{idx}"
    result_dict[unique_key] = modified_entry

内容的提问来源于stack exchange,提问作者anakin skywalker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 11:47:35