3 回答

TA貢獻1777條經驗 獲得超3個贊
“ u”是字符串的外部表示形式的一部分,這意味著它是Unicode字符串,而不是字節字符串。它不在字符串中,而是類型的一部分。
例如,您可以使用相同的synax創建新的Unicode字符串文字。例如:
>>> sandwich = u"sm?rg?s"
>>> sandwich
u'sm\xf6rg\xe5s'
這將創建一個新的Unicode字符串,其值是“三明治”的瑞典語單詞。您可以看到非英語字符由它們的Unicode代碼點表示,?是\xf6和?是\xe5。就像在您的示例中一樣,出現'u'前綴,表示該字符串包含Unicode文本。
要消除這些問題,您需要將Unicode字符串編碼為某些面向字節的表示形式,例如UTF-8。您可以使用例如:
>>> sandwich.encode("utf-8")
'sm\xc3\xb6rg\xc3\xa5s'
在這里,我們得到一個不帶前綴“ u”的新字符串,因為這是一個字節字符串。它包含代表Unicode字符串字符的字節,由于UTF-8編碼的奇妙,瑞典語字符導致多個字節。

TA貢獻1765條經驗 獲得超5個贊
[u'{email:[email protected],gem:0}', u'{email:test,gem:0}', u'{email:test,gem:0}', u'{email:test,gem:0}', u'{email:test,gem:0}', u'{email:test1,gem:0}']
“ u”表示unicode字符。我們可以使用最終列表元素上的map函數輕松刪除它
map(str, test)
另一種方法是將其追加到列表時
test.append(str(a))
添加回答
舉報