如何将带下划线的字符串转换为unicode?

时间:2017-07-07 15:04:25

标签: python unicode

我尝试在python中使用字符串元素创建数组。

 a = array('u',["sub_id","datetime"])

Python show TypeError:数组项必须是unicode字符

创建数组的原因是发送请求。我使用带有某些产品的JSON的rest API并发送请求,但它说这个参数必须是一个数组。(元组和列表不适合)

我使用python 3.4.4,我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

问题与下划线无关。

对于类型代码 Buch[] arr = new Buch[5]; for(int i = 0; i<5; i++){ arr[i] = new Buch(); } arr[0].fill("Blablabla", "Baba Isi", "DE 1234567890", 50, 1234f); arr[1].fill("Blabla2", "blubb", "DE 5461563259", 50, 1234f); arr[2].fill("Check this out", "oke", "DE 67892011789", 50, 1234f); arr[3].fill("Got ya", "catch ya", "DE 678198771890", 50, 1234f); arr[4].fill("IDK", "IDK2", "DE 47740710974691", 50, 1234f); for(int i = 0; i < arr.length; i++){ //toString method exists an it works System.out.println(arr[i].toString()); } 的数组,您不需要方括号; unicode对象是可迭代的:

'u'
>>> a = array('u', u'sub_id')
>>> a.append(u'g')
>>> a
array('u', u'sub_idg')

这对于数字类型是不同的,因为它们不可迭代,并且您需要通过列表传递可迭代的数字。

包含Python 3.4版本,我开始认为你的API实际上需要一个字符串列表。

答案 1 :(得分:2)

在Python 3中不推荐使用类型代码为'u'的数组,您很少需要使用它们。

在这种特殊情况下,这似乎是一个特别糟糕的主意,因为Unicode字符数组是字符的数组,而不是字符串的数组。您不能创建一个多个Unicode字符串数组。如果您使用的API需要多个字符串的列表,那么它不希望您使用Python array

JSON所谓的“数组”与Python称之为“列表”非常相似。您实际应该做的是创建所有字符串的Python列表,如["sub_id","datetime"],然后使用Python的json module将Python列表编码为包含数组的JSON文档。