分割一条具有多个唯一分隔线的线

时间:2019-06-08 00:17:50

标签: python python-2.7

我想分割其中具有多个':'以及表格和字典的行: 行:

'IP - internet : IPv4:225.138.42.248 IPv6:NA'

字典:

{
"IP - internet" : {
  "IPv4" : "225.138.42.248",
  "IPv6" : "NA"
}
}

我尝试了line.rsplit(':', 3),但无法获得确切的字典任何帮助 将受到高度赞赏。

谢谢

1 个答案:

答案 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