如何在Python中分割复杂的字符串

时间:2019-05-28 16:50:36

标签: python python-2.7

给出以下字符串:

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值,这不是我想要的值。我正在使用Python 2.7。

1 个答案:

答案 0 :(得分:2)

通过一系列复杂的替换,我将此样式转换为JSON。然后使用import pandas as pd df=pd.read_csv('file.csv') df.to_csv('new_file.csv',index=False) 可以将其转换为Python字典。这个ASSUMES,您不使用要替换的字符,而仅继续使用整数作为值

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

json.loads

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) 个(共pprint个结果:

myDict

还有一个示例-

{'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'}