str = 'title={WiMAX Power Amplifier Design based on Si-LDMOS},author={Nader, Charles and De Carvalho, Nuno Borges},journal={University of Galve, Sweden},year={2006}'
# 方法1:先通過分隔符 '},' 來分隔字符串,在判斷 'author' 並輸出 author對應的內容
for item in str.split('},'):
try:
if 'author' in item:
print(item.split('{', 1)[1])
except Exception as e:
print(e)
# 方法2:
d = dict([s.split('={') for s in str.split('},')])
print(d['author'])
- 原理: 代碼先執行 for 語句中的 str.split('},') 每次循環得到一個由 '},' 分隔的字符串,然后通過 s.split('={') 分隔出等號前后的內容,split函數返回的是一個數組則經過四次循環得到的內容如下
['title', 'WiMAX Power Amplifier Design based on Si-LDMOS']
['author', 'Nader, Charles and De Carvalho, Nuno Borges']
['journal', 'University of Galve, Sweden']
['year', '2006}']
- 最后將列表轉為字典(參考:http://www.tuicool.com/articles/b6nQBvn)
d = dict([s.split('={') for s in str.split('},')])
# 再通過key取出value即可
print(d['author'])
注釋
d = dict([s.split('={') for s in str.split('},')])
# 以上代碼可以轉化為下面這樣看起來清楚了許多,
one = str.split('},')
for s in one:
two = s.split('={')
print(two)
-
列表轉字典

-
還有一種方法:正則表達式,不太會...
補充官方文檔注釋:

- 大概意思:括號第一個參數: 用戶規定的分隔符,第二個參數: 分隔長度. 返回的是一個list列表.如果第一個參數沒有的話那么任何一個例如 空格、換行(\n)、制表符(\t)就作為一個分隔符來分隔字符串,並以列表list的形式返回給調用者.
