如何将字符串形式的列表转换为字典并提取目标字典内容?
从字符串形式的列表中提取字典内容
问题说明
你手头的data是JSON格式的字符串,但包含HTML转义的双引号("),整体是包裹着字典的列表结构。不需要手动从第6个字符截取内容,直接通过JSON解析就能可靠获取目标字典,比手动处理字符串高效且容错性强。
实现步骤
- 替换HTML转义字符:将字符串中的
"替换为标准双引号",使其成为合法的JSON格式。 - 解析为Python数据结构:用
json模块把处理后的字符串解析成Python的列表(列表内包含目标字典)。 - 提取目标字典:从解析后的列表中取出第一个元素,即为所需的字典。
完整代码示例
import json data = '[\n {\n "registration_number": "aj13870",\n "status": "registreret",\n "status_date": "2013-10-07t10:33:46.000+02:00",\n "type": "personbil",\n "use": "privat personk\u00f8rsel",\n "first_registration": "2013-10-07+02:00",\n "vin": "wdd2042021g129692",\n "own_weight": null,\n "cerb_weight": 1655,\n "total_weight": 2195,\n "axels": 2,\n "pulling_axels": 1,\n "seats": 5,\n "coupling": false,\n "trailer_maxweight_nobrakes": 750,\n "trailer_maxweight_withbrakes": 1800,\n "doors": 4,\n "make": "mercedes-benz",\n "model": "c-klasse",\n "variant": "220 cdi blueefficiency t",\n "model_type": "204 k",\n "model_year": 2013,\n "color": "gr\u00e5",\n "chassis_type": "stationcar",\n "engine_cylinders": 4,\n "engine_volume": 2143,\n "engine_power": 125,\n "fuel_type": "diesel",\n "registration_zipcode": "",\n "vehicle_id": 9000000000384590,\n "mot_info": {\n "type": "periodisksyn",\n "date": "2021-10-06",\n "result": "godkendt",\n "status": "aktiv",\n "status_date": "2021-10-06",\n "mileage": 106\n },\n "is_leasing": false,\n "leasing_from": null,\n "leasing_to": null\n }\n]' # 替换HTML转义的双引号 clean_data = data.replace('"', '"') # 解析为Python列表 parsed_data = json.loads(clean_data) # 提取列表中的字典(第一个元素) target_dict = parsed_data[0] # 测试:打印车牌号码 print(target_dict['registration_number'])
补充说明
- 若坚持从第6个字符截取(不推荐,结构变动会直接失效),可在替换转义字符后用
clean_data[5:]截取,再用json.loads()解析,但这种方式容错性极差,优先使用标准JSON解析方法。 - 解析后的
target_dict是标准Python字典,可直接通过键名取值,比如target_dict['make']即可获取车辆品牌信息。
内容的提问来源于stack exchange,提问作者TheIslander
相关产品推荐
相关产品推荐

