我嘗試使用python中的字符串元素創建數組。如何將帶下劃線的字符串轉換爲unicode?
a = array('u',["sub_id","datetime"])
Python的節目類型錯誤:數組項目必須是Unicode字符創建的陣列
原因是與要求發送。我使用一些產品的JSON rest API併發送請求,但它說這個參數必須是一個數組。(元組和列表不適合)
我使用python 3.4.4,我該如何解決這個問題?
我嘗試使用python中的字符串元素創建數組。如何將帶下劃線的字符串轉換爲unicode?
a = array('u',["sub_id","datetime"])
Python的節目類型錯誤:數組項目必須是Unicode字符創建的陣列
原因是與要求發送。我使用一些產品的JSON rest API併發送請求,但它說這個參數必須是一個數組。(元組和列表不適合)
我使用python 3.4.4,我該如何解決這個問題?
類型代碼'u'
的數組在Python 3中已被棄用,您應該很少需要使用它們。
在這種特殊情況下,這似乎是一個特別糟糕的主意,因爲Unicode字符數組的字符數組,不串的陣列。您不能創建一個由多個Unicode字符串組成的數組。如果您使用的API需要多個字符串的列表,那麼它不希望您使用Python array
。
JSON調用「數組」的方式與Python調用「列表」非常相似。實際上你應該做的是創建一個包含所有字符串的Python列表,如["sub_id","datetime"]
,然後使用Python的json
module將Python列表編碼爲包含數組的JSON文檔。
該問題與下劃線無關。
您不需要typecode的數組的方括號'u'
; Unicode對象是可迭代:
>>> a = array('u', u'sub_id')
>>> a.append(u'g')
>>> a
array('u', u'sub_idg')
>>> a = array('u', u'sub_id datetime')
>>> a.extend(u' time')
>>> a
array('u', u'sub_id datetime time')
,因爲它們不是可迭代這是數值類型不同,你需要通過一個列表來傳遞數字的迭代。
隨着Python 3.4版本的包含,我開始認爲你的API實際上需要一個字符串列表。
它不適合 –
那麼你應該在問題中包含它。 –
你是在Py 2還是3? – patrick
奇怪的是,當我運行你的代碼時,我沒有得到TypeError,我得到'NameError:name'數組'沒有被定義。這是你正在運行的完整代碼嗎? – Kevin
@Kevin你需要'進口數組' – patrick