如何从字符串中提取到python中的dict?

时间:2014-04-11 16:45:43

标签: python

我有以下字符串(换行符,空格和所有内容):

<br>

                                                       Birthday
: 1/1/2014
                                            <br>
                                                                Best Win
: Soccer, (Texas Tournament 2004)
                        </br></br>

提取生日&#34;生日&#34;最佳方法是什么?和#34;最佳胜利&#34;成为一个词典?

"Birthday": "1/1/2014"
"Best Win": "Soccer, (Texas Tournament 2004)

日期可以是任何东西,Best Win之后的东西:可能是任何东西,但它总是在

之前
</br>

1 个答案:

答案 0 :(得分:1)

通常,您可能希望使用像BeautifulSoup这样的库。我将介绍如何使用这个特定的字符串。

让我们先摆脱空格和换行符。我假设您将字符串保存为s

>>> s = s.replace('\n','') #remove newlines
>>> s
'<br>                                                       Birthday: 1/1/2014                                            <br>                                                                Best Win: Soccer, (Texas Tournament 2004)                        </br></br>'

秒。 现在我们可以拆分<br>模式来分离各个部分。

>>> parts = s.split('<br>')
>>> parts
['',

'生日:2014年1月1日',  '最佳胜利:足球,(德州赛事2004)']

现在我们想要删除空白部分,并删除那些额外的</br>(通过用空字符串替换它们。

>>> parts = [part.replace('</br>','') for part in parts if part != '']
>>> parts
['                                                       Birthday: 1/1/2014                                            ',

'最佳胜利:足球,(德州赛事2004)']

现在,我们希望摆脱零件两侧的所有额外空间。

>>> parts = [part.strip(' ') for part in parts]
>>> parts
['Birthday: 1/1/2014', 'Best Win: Soccer, (Texas Tournament 2004)']

现在,最后,我们可以从各个部分创建一个字典。

>>> key_val = [ tuple(part.split(':')) for part in parts]
>>> key_val
[('Birthday', ' 1/1/2014'), ('Best Win', ' Soccer, (Texas Tournament 2004)')]
>>> my_dict = dict(key_val)
>>> my_dict
{'Best Win': ' Soccer, (Texas Tournament 2004)', 'Birthday': ' 1/1/2014'}

显然,你会想要使用更好的变量名来描述实际发生的事情。我对你的问题不太了解,所以我的问题很不明智。