我正在寫一個Python腳本,用於驗證父表中每個單元格的值,並將其與查找表中的值進行比較。隱藏字符串。簡單與Unicode,Python
因此,在父表中我有許多列,每列對應於應該在該特定列中的每個記錄中的已知值的查找表。
當我從父表中的值閱讀,會有很多的類型(即Unicode字符串,整數,浮點數,日期等)
的查找表具有相同的多種類型,但是當它是一個字符串,它是一個簡單的字符串,而不是一個unicode字符串,它迫使我將值轉換爲匹配。 (即,如果從父表中的單元格的值是一個unicode字符串,然後我需要創建一個條件語句來測試,如果是unicode的,然後轉換爲簡單的字符串
if isinstance(row.getValue(columnname), unicode):
x = str(row.getValue(columnname)
我的問題是,會更好將unicode字符串轉換爲簡單字符串或反之亦然以匹配類型?爲什麼它會更好?
如果有幫助,我的父表全部在訪問中,查找表都在excel中。認爲真的很重要,但也許我錯過了一些東西。
我不知道擴展ascii代碼,但大多數情況下,字符串和unicodes散列相同 - 即dict ['astr']指向與dict [u'astr']相同的元素。你有沒有發現只是使用它們的問題? –
@Corley。感謝您提供ascii字符。這是我的下一個挑戰,因爲我有一個查找表,其中包含這些值,我將不得不解決。非常好的一點。至於比較字符串與unicode,我試過的測試是這樣的:x = ['a','b','c','d'],r = u't',如果r in x:print'yes 'else:打印'否'結果是否定的。 – Mike
但在你的情況下,正確的答案是'不'...我只是試過這個:x = ['a','b','c','d']。 't'in x - >錯誤(正確)。 'a'in x - >真(正確)u'a'in x - >真。 –