如何在Python中拆分复杂字符串

2024-05-19 16:35:51 发布

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

给定以下字符串:

my_string = "fan_num=2,fan1=0,fan2=0,chain_xtime8={X0=8,X1=3,X2=11},chain_offside_6=0,chain_offside_7=0,chain_offside_8=0,chain_opencore_6=0,chain_opencore_7=0,chain_opencore_8=0"

如何拆分它以获得以下输出:

[ 
  fan_num=2,
  fan1=0,
  fan2=0,
  chain_xtime8={X0=8,X1=3,X2=11},
  chain_offside_6=0,
  chain_offside_7=0,
  chain_offside_8=0,
  chain_opencore_6=0,
  chain_opencore_7=0,
  chain_opencore_8=0
]

我试过:

output = my_string.split(',')

但是,这会分割chain_xtime8值,这不是我想要的。我使用的是python2.7。你知道吗


Tags: 字符串chainoutputstringmynumx1x2
1条回答
网友
1楼 · 发布于 2024-05-19 16:35:51

通过一系列复杂的替换,我将这种样式转换为JSON。然后使用json.loads可以将其转换为Python dict

这显然可以收紧,但我想让它可读

import json

my_string = "fan_num=2,fan1=0,fan2=0,chain_xtime8={X0=8,X1=3,X2=11},chain_offside_6=0,chain_offside_7=0,chain_offside_8=0,chain_opencore_6=0,chain_opencore_7=0,chain_opencore_8=0"

my_string = '{"' + my_string + '"}'
my_string = my_string.replace('=', '":"')
my_string = my_string.replace(',', '","')
my_string = my_string.replace('"{', '{"')
my_string = my_string.replace('}"', '"}')
myDict = json.loads(my_string)

pprintmyDict结果:

{'chain_offside_6': '0',
 'chain_offside_7': '0',
 'chain_offside_8': '0',
 'chain_opencore_6': '0',
 'chain_opencore_7': '0',
 'chain_opencore_8': '0',
 'chain_xtime8': {'X0': '8', 'X1': '3', 'X2': '11'},
 'fan1': '0',
 'fan2': '0',
 'fan_num': '2'}

还有一个例子-

print(myDict['chain_xtime8']['X0'])
>> 8

相关问题 更多 >