Python конвертировать "Unicode" в виде списка - PullRequest
0 голосов
/ 25 июня 2018

У меня есть сомнения по поводу обработки возвращаемого типа в 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

Возможно ли это?

Ответы [ 4 ]

0 голосов
/ 25 июня 2018

Вы можете попробовать сделать следующее:

b = []
for i in a:
    if i != None:
        b.append(i)
    if i == None:
        b.append(None)

print (type(b))
0 голосов
/ 25 июня 2018

Использование стандартной библиотеки 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'.
0 голосов
/ 25 июня 2018

Проблема не с запятой.

это прекрасно работает:

a = (1,13616,"My string, that can have comma",170.90)

, и это также работает:

a = (1,13616,None,"My string, that can have comma",170.90)

, но когда вы оставляете две запятые",," это не работает.

0 голосов
/ 25 июня 2018

Строки 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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...