我有兩種類型的txt文件,其中一個保存在一些任意格式的形式檢查文件是JSON加載
Header
key1 value1
key2 value2
和其他文件formart上存儲爲
一個簡單的JSON轉儲with open(filename,"w") as outfile:
json.dump(json_data,outfile)
從一個對話窗口,用戶可以裝載這兩個文件的,但我的裝載機需要能夠Type1和Type2之間的區別和文件發送到正確的負載程序。
#Pseudocode
def load(filename):
if filename is json-loadable:
json_loader(filename)
else:
other_loader(filename)
我能想到的最簡單方法是使用try/except塊作爲
def load(filename):
try:
data = json.load(open(filename))
process_data(data)
except:
other_loader(filename)
但因爲有像50/50風險的失敗中,我不喜歡這種方法嘗試/除了塊,並且據我所知,嘗試/除非失敗,否則很慢。
那麼,有沒有檢查如果JSON格式與否的更簡單,更便捷的方式?
「據我所知嘗試/除非你失敗是慢」 - 與從磁盤讀取文件相比?它確實不是。 –
Python異常不是特別昂貴,在任何情況下,這聽起來都像是不成熟的優化。 – geoffspear
的確,速度在這種情況下並不是真正的問題,而是使用try/except。我閱讀了關於試/除外,看到此評論http://docs.python.org/2/glossary.html#term-eafp它說,嘗試/除了在Python實際上是鼓勵這樣也許我的代碼是好的,因爲它是! – pathoren