我必须将不带引号的字符串转换成字典。
device: 0, name: GeForce GTX 1080 8GB, pci bus id: 0000:01:00.0
“设备”,“名称”和“ pci总线ID”必须是密钥,
和'0','GeForce GTX 1080 8GB','0000:01:00.0'必须为值。
我是从tensorflow.python.client.list_local_devices()
获得的答案 0 :(得分:3)
首先,您必须将字符串用','(逗号和空格)分隔,以分隔字符串中的每个key:值。然后,对于每个带有'key:value'的字符串,必须将其拆分为':'(冒号和空格)以分别获取key和value来构建字典。
dict = {}
s = "device: 0, name: GeForce GTX 1080 8GB, pci bus id: 0000:01:00.0"
'''split to separate the main string in 'key: value' substrings'''
key_value = s.split(", ")
'''each substring is separated in key and value to be appended into dictionary'''
for v in key_value:
aux = v.split(": ")
dict[aux[0]] = aux[1]
print(dict)
输出:
{'name': 'GeForce GTX 1080 8GB', 'device': '0', 'pci bus id': '0000:01:00.0'}
答案 1 :(得分:0)
使用两个.split()
和 dictionary理解,第一个.split(', ')
分割整个字符串,第二个split(': ')
分割列表项以转换为keys and values
s = "device: 0, name: GeForce GTX 1080 8GB, pci bus id: 0000:01:00.0"
d = {i.split(': ')[0]: i.split(': ')[1] for i in s.split(', ')}
{'device': '0', 'name': 'GeForce GTX 1080 8GB', 'pci bus id': '0000:01:00.0'}