我使用Python 3.4,不得不解析JSON這樣ValueError異常試圖解析JSON
[['A', 'B', 1.3750], ['X', 'Y', 0.7097]]
,我嘗試使用JSON模塊時,json.loads函數將其解析爲Python對象,但我得到
ValueError: Expecting value: line 1 column 3 (char 2)
那麼,我能做些什麼來解析這個JSON?
我使用Python 3.4,不得不解析JSON這樣ValueError異常試圖解析JSON
[['A', 'B', 1.3750], ['X', 'Y', 0.7097]]
,我嘗試使用JSON模塊時,json.loads函數將其解析爲Python對象,但我得到
ValueError: Expecting value: line 1 column 3 (char 2)
那麼,我能做些什麼來解析這個JSON?
它是不是有效的JSON,但有效的字面蟒蛇您可以通過使用解析它ast.literal_eval
import ast
ast.literal_eval("[['A', 'B', 1.3750], ['X', 'Y', 0.7097]]")
你有兩個主要問題:
如果你真的想解析爲JSON,你必須先做一些清理。例如:
import json
json_input = "[['A', 'B', 1.3750], ['X', 'Y', 0.7097]]"
print json.loads('{"value": %s}' % json_input.replace("'", '"'))['value']
的問題,這是它非常脆弱,因爲源可以發送類似"'"
,它會被轉換爲'''
這會造成問題。如果你試圖解決這個問題的路線太慢了,那麼你基本上就是在編寫一個解析器。
您的JSON無效。在http://jsonlint.com/檢查它,並且在它有效之前不要嘗試解析它JSON –
這是web API返回的內容,JavaScript中使用了什麼,所以我必須以某種方式處理這個問題。 – adontz
您應該聯繫任何製作API的人,然後通知您在JSON中使用「引用而非引用」 –