2017-02-10 399 views
0

我想用JSON數據處理數據集。但是,數據已被寫入文件而不被解析。這意味着Python字典會以字符串的形式寫入文件,而不是以字符串的形式寫入JSON對象。Python ast.literal_eval關於字典字符串不起作用(SyntaxError:無效的語法)

我發現了一個模塊(AST),可以完成這個工作,使用ast.literal_eval函數再次將字符串轉換爲字典。

不過,我在一些實例中得到一個很奇怪的錯誤:

Error when parsing using ast.literal_eval

的代碼從一個文本文件中讀取並應用下面每一行:

ast.literal_eval(line.rstrip()) 

看起來有些字符與AST模塊不兼容。

還需要回想一下,這不會發生在所有數據集中,只是有些情況。

任何想法?

非常感謝提前。

回答

0

嘗試探索json軟件包。它是更清潔和更標準的方式轉換字典到字典

json.loads(inputStr) // Converts string -> dict 
json.dumps(inputJson) // Converts dict -> string 

希望這會有所幫助。乾杯!

+0

嗨priyank。謝謝您的回答。但是,這是行不通的。正如我在帖子中所說的「數據已經寫入文件而不被解析」。這意味着,有人在文件中寫入了一個字典,而沒有被解析爲JSON。因此,使用'json.loads(inputStr)'將不起作用。這就是爲什麼我需要ast。 literal_eval。 – Salias