从字典列表中提取字符串python

2024-06-18 13:07:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的字典清单。在

self.local_devices_list =[
    {'type': '\x02', 'device_name': u'USB HID, ManufStr="", ProdStr="QWER1025", 
     SerialNum="ABCDEF0123456789", VendorID="0xa34", ProdID="0x4007"'},
    {'type': '\x02', 'device_name': u'USB HID, ManufStr="", ProdStr="ASDF452x", 
     SerialNum="ABCDEF0123456789", VendorID="0xa34", ProdID="0x4007"'}
]

我已经使用列表理解提取了键“device”的值

device_names = [d["device_name"].encode("utf-8") for d in self.local_devices_list if "device_name" in d]

我想把设备名的信息提取成如下所示的单独字符串

^{pr2}$

Tags: nameselfdevicelocaltypelistusbdevices
3条回答

正则表达式可以很容易地解决这个问题。在

import re
regex = re.compile(r'(\w+)="(\w*)"', flags=re.IGNORECASE)
for d in device_names:
    print(dict(regex.findall(d)))

{'ManufStr': '', 'ProdStr': 'QWER1025', 'SerialNum': 'ABCDEF0123456789', 'VendorID': '0xa34', 'ProdID': '0x4007'}

{'ManufStr': '', 'ProdStr': 'ASDF452x', 'SerialNum': 'ABCDEF0123456789', 'VendorID': '0xa34', 'ProdID': '0x4007'}

可以这样拆分变量:

device_names[0].split(', ')

这将为您提供一系列您应该能够处理的项目。在

^{pr2}$

希望这有帮助。在

可以使用.values()和list()。values()将把字典中的值提取到valueView中,list()将把它们提取到列表中。如果它们是字符串类型,那么一切都是好的,否则在从列表中提取它们时需要转换为字符串。在

例如:

ExtractedValues = list(self.local_devices_list.values())
str(ExtractedValues[0])

相关问题 更多 >