2017-02-13 29 views
-1

我讀這本字典從文件作爲一個字符串:Python的 - 正則表達式匹配最後一個鍵/值到字典串

string = '{"key1":"value1", "key2":"value2"}' 

我不知道哪些值KEY1和KEY2可以假設,我需要訪問寫在字符串上的最後一對值(在本例中爲'value2')。因此將其轉換爲Python字典是不可能的,因爲它可能會改變順序。

我已經試過類似:

value = re.search(r'"(.*?)":"(.*?)"', string) 

但我不知道如何訪問的最後一場比賽的。集團(2)。

+0

你能不能儘量只'的eval()'? – Prajwal

+0

['ast.literal_eval'](https://docs.python.org/3/library/ast.html#ast.literal_eval)。 – Abdou

+0

爲什麼順序很重要?爲什麼這些數據不是作爲一個列表進入? –

回答

1

你可以這樣做:

import re 
output = re.findall(".*\"[a-zA-Z0-9]+\"[\w]*:[\w]*\"(.+)\"[\w]*}", string) 

輸出:

>>> re.findall(".*\"[a-zA-Z0-9]+\"[\w]*:[\w]*\"(.+)\"[\w]*}", string) 
['value2'] 
相關問題