2015-06-19 69 views
2

我有一個文件,其中包含類似於下面顯示的示例的信息。我想知道是否有一種方法可以使用python讀取此文件並將其用作json。我知道如何打開它並處理文本,但有沒有其他方法?使用python讀取文件爲json的替代方法

例子:

key={{name='foo', etc..},{},{},{}} 
+0

你在那裏沒有有效的Python和JSON語法。 –

+0

我知道該語法不是有效的JSON或Python。我試圖找到一種使用Python將日期轉換爲JSON或Dictionary的方式。任何一個都可以。 – crisis

+0

如果可能,我寧願不使用ast。如果有人遇到過這個問題,並有解決方案,我將不勝感激。謝謝 – crisis

回答

1

如果你想爲JSON,你需要有一個有效的JSON語法來對待您的內容:

{"key":[{"name": "foo"},{},{},{}]} 

然後你可以使用JSON庫將其轉換爲一個字典:

>>> import json 
>>> json.loads('{"key":[{"name": "foo"},{},{},{}]}') 
{u'key': [{u'name': u'foo'}, {}, {}, {}]} 

此外,如果您的文件內容無法更改爲正確的json語法,那麼你將需要爲你的具體情況開發一個解析器。

+0

感謝您的回答。我將開始分析器的工作,因爲除非我想在本地複製文件並執行文本操作,否則轉換爲JSON不是一種選擇。我將不得不試驗一下,哪一個更節省時間。 – crisis

0

搜索幾種不同的語言後,我能夠確定數據結構是一個Lua容器。我發現了一個簡單的lua-python解析器,當前可以在這裏找到github.com/SirAnthony/slpp,並且我能夠解析(解碼)lua數據結構。下面是使用slpp.py解析lua容器的例子,我希望這可以幫助任何有類似問題的人。

>>> from slpp import slpp as lua 
>>> data = lua.decode('{ array = { 65, 23, 5 }, dict = { string = "value", array = { 3, 6, 4}, mixed = { 43, 54.3, false, string = "value", 9 } } }') 
>>> print data 

{ '陣列':[65,23,5], '字典':{ '混合':{0:43,1:54.33,2:假,4:9中, '字符串': 'value'},'array':[3,6,4],'string':'value'}}