1

我有一个这样的字符串:

"[{cidr: 192.168.5.240/24, nic: ETH5}, {cidr: 192.168.5.241/24, nic: ETH0}, {cidr: 192.168.5.243/24, nic: ETH5.2}]"

我想将其转换为这样的字典列表:

[{"cidr": "192.168.5.240/24", "nic": "ETH5"}, {"cidr": "192.168.5.241/24", "nic": "ETH0"}, {"cidr": "192.168.5.243/24", "nic": "ETH5.2"}]

有没有一种清晰简单的方法可以在 python 中做到这一点?

4

1 回答 1

3

这是使用正则表达式和ast模块的一种方法。

前任:

import re
import ast

data = "[{cidr: 192.168.5.240/24, nic: ETH5}, {cidr: 192.168.5.241/24, nic: ETH0}, {cidr: 192.168.5.243/24, nic: ETH5.2}]"
data = re.sub(r"(\w+):\s*([A-Za-z0-9./]+)", r'"\1":"\2"', data)   #encapsulate string with quotes. 
print(ast.literal_eval(data))

输出:

[{'cidr': '192.168.5.240/24', 'nic': 'ETH5'},
 {'cidr': '192.168.5.241/24', 'nic': 'ETH0'},
 {'cidr': '192.168.5.243/24', 'nic': 'ETH5.2'}]
于 2019-10-14T09:11:55.830 回答