[英]python convert “unicode” as list
我對在python中處理返回類型有疑問。
我有一個數據庫函數,將其作為值返回:
(1,13616,,"My string, that can have comma",170.90)
我將其放入變量並測試了類型:
print(type(var))
我得到了結果:
<type 'unicode'>
我想將其轉換為列表,並用逗號分隔值。
例如:
var[0] = 1
var[1] = 13616
var[2] = None
var[3] = "My string, that can have comma"
var[4] = 170.90
可能嗎?
使用標准庫csv
閱讀器:
>>> import csv
>>> s = u'(1,13616,,"My string, that can have comma",170.90)'
>>> [var] = csv.reader([s[1:-1]])
>>> var[3]
'My string, that can have comma'
一些警告:
var[2]
將是一個空字符串,而不是None
,但是您可以對其進行后處理。 0
和'0'
之間的差異。 您可以嘗試執行以下操作:
b = []
for i in a:
if i != None:
b.append(i)
if i == None:
b.append(None)
print (type(b))
問題不在於逗號。
這工作正常:
a = (1,13616,"My string, that can have comma",170.90)
這也適用:
a = (1,13616,None,"My string, that can have comma",170.90)
但是當您留下兩個逗號“,”時,它不起作用。
Unicode字符串(基本上)只是Python2中的字符串(在Python3中,刪除最后一句話中的“基本上”一詞)。 通過在字符串前面加上u
來將它們寫為文字(比較原始字符串r"something"
或Py3.4 +格式化程序字符串f"{some_var}thing"
)
只需剝離您的括號並以逗號分隔即可。 如果要170.90
而不是u'170.90'
或None
而不是u''
,則必須進行一些后期解析,但是我留給您自己決定。
>>> var.strip(u'()').split(u',')
[u'1', u'13616', u'', u'"My string', u' that can have comma"', u'170.90']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.