2014-04-09 51 views
0

我在python中工作,我需要將導入的字符串轉換爲普通文本。我無法真正使用split(),因爲我擁有的文本是不可預測的。將字符串轉換爲正常文本

例如,我會:

' "ABC1.2.3.4", 
{ 
    "abc": "4.5.6", 
    "cde": 
    [ 
     { 
      "efg": "7.8.9", 
      "hij": "1234", 
     }, 
     { 
      "efg": "789", 
      "hij": "5678", 
     } 
    ] 
} ' 

所有我想要的是完全相同的文字,只是沒有作爲一個字符串(去掉'「),並把它放在一個列表

+0

'的eval()':'evil'尚未'inevitable' – sshashank124

+0

是'''總是第一個和最後一個字符? –

+8

@ sshashank124:不存在'json.loads()'和'ast.literal_eval()'時。這不是說要麼在這裏工作,因爲這是*不完整*。 –

回答

5
import ast 

s = """ "ABC1.2.3.4", 
    { 
     "abc": "4.5.6", 
     "cde": 
     [ 
      { 
       "efg": "7.8.9", 
       "hij": "1234", 
      }, 
      { 
       "efg": "789", 
       "hij": "5678", 
      } 
     ] 
    } """ 

data = ast.literal_eval("[{}]".format(s)) 

['ABC1.2.3.4', 
{'abc': '4.5.6', 
    'cde': [{'efg': '7.8.9', 'hij': '1234'}, {'efg': '789', 'hij': '5678'}]} 
]