2015-05-14 27 views
0

我有一個硬編碼的元數據文件,其數據包裹在單引號中,如「澳大利亞」,「美國」。此元數據與新數據進行比較,可以使用雙引號(如「USA」(比較問題)或單引號(我沒有問題))將其包裝。另外,我無法比較'USA'和'USA'。由於新文件大〜700 MB,我不希望使用替換功能進行性能密集型數據替換。我如何將元數據與新數據進行比較?如何處理Python 2.x中相同的雙引號數據和單引號數據?

+0

所以一切都是在被繞在單引號或雙引號? –

+0

不,我不確定這一點。將來的文件可以同時具備。我對此持懷疑態度。 – minatverma

+0

我會更新元數據文件以使用雙引號。然後,您可以將它們直接與新的數據文件進行比較。 –

回答

1

如果你想使用@周杰倫的算法,但沒有進口,你可以這樣做:

def make_str(s): 
    return s.strip("'").strip('"') 

a = 'USA' 
b = '"USA"' 

c = "UN" 
d = "'UN'" 


if make_str(a) == make_str(b): 
    print(make_str(a)) 

if make_str(c) == make_str(d): 
    print(make_str(c)) 
0

嘗試...

import ast 
a = 'USA' 
b = '"USA"' 
if a == ast.literal_eval(b): 
    print(a) 

USA 
+0

對於'a',這會拋出'ValueError:格式不正確的字符串'。此外,這對我認爲是問題的東西來說太過矯枉過正了。 –

+0

@Tomasz Gandor我以正確的格式編輯它 –

+0

現在確定。順便說一句,'repr(ast.literal_eval(''USA''))'是...''USA'' –