我想分割其中具有多个':'以及表格和字典的行: 行:
'IP - internet : IPv4:225.138.42.248 IPv6:NA'
字典:
{
"IP - internet" : {
"IPv4" : "225.138.42.248",
"IPv6" : "NA"
}
}
我尝试了line.rsplit(':', 3)
,但无法获得确切的字典任何帮助
将受到高度赞赏。
谢谢
答案 0 :(得分:0)
如果字符串将始终像Encode
那样格式化,那么您可以使用此代码:
'<string 1> : <key1>:<value1> <key2>:<value2>'
输出:
s = 'IP - internet : IPv4:225.138.42.248 IPv6:NA'
l = s.split(' : ')
s1 = l[0]
l = l[1].split(' ')
k1, v1 = l[0].split(':')
k2, v2 = l[1].split(':')
d = {
s1: {
k1: v1,
k2: v2,
}
}
print d
或者,您可以使用正则表达式:
{'IP - internet': {'IPv4': '225.138.42.248', 'IPv6': 'NA'}}
输出:
s = 'IP - internet : IPv4:225.138.42.248 IPv6:NA'
import re
pattern = r'([^:]+) : ([^:]+):([^:]+) ([^:]+):([^:]+)'
r = re.search(pattern, s)
s1, k1, v1, k2, v2 = (r.group(i) for i in range(1, 6))
d = {
s1: {
k1: v1,
k2: v2,
}
}
print d