簡體   English   中英

python將“ unicode”轉換為列表

[英]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 ,但是您可以對其進行后處理。
  • 數字將是字符串,並且也需要后處理,因為csv不能告訴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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM