Как я могу присоединиться к списку в строку (протест)?

Используйте MERGE

MERGE INTO Delegates D
USING (values(@MemNo, @FromYr,@ToYr)) X ([MemNo],[FromYr],[ToYr])
ON (insert unique key join)
WHEN NOT MATCHED BY TARGET THEN
INSERT ([MemNo],[FromYr],[ToYr]))
VALUES (X.[MemNo],X.[FromYr],X.[ToYr]);

6
задан Community 23 May 2017 в 10:28
поделиться

3 ответа

Используя csv модуль можно сделать тот путь:

import csv
writer = csv.writer(open("some.csv", "wb"))
writer.writerow(the_list)

Если Вам нужна строка, просто используют StringIO экземпляр как файл:

f = StringIO.StringIO()
writer = csv.writer(f)
writer.writerow(the_list)
print f.getvalue()

Вывод: a,"one ""two"" three","foo, bar","both""'"

csv запишет способом, что это может читать назад позже. Можно подстроить его вывод путем определения a dialect, просто набор quotechar, escapechar, и т.д., по мере необходимости:

class SomeDialect(csv.excel):
    delimiter = ','
    quotechar = '"'
    escapechar = "\\"
    doublequote = False
    lineterminator = '\n'
    quoting = csv.QUOTE_MINIMAL

f = cStringIO.StringIO()
writer = csv.writer(f, dialect=SomeDialect)
writer.writerow(the_list)
print f.getvalue()

Вывод: a,one \"two\" three,"foo, bar",both\"'

Тот же диалект может использоваться с csv модулем для чтения строки назад позже в список.

7
ответ дан 10 December 2019 в 00:46
поделиться

На связанной ноте встроенные кодеры Python могут также сделать строковый выход:

>>> print "that's interesting".encode('string_escape')
that\'s interesting
2
ответ дан 10 December 2019 в 00:46
поделиться

Вот немного более простая альтернатива.

def quote(s):
    if "'" in s or '"' in s or "," in str(s):
        return repr(s)
    return s

Мы только должны заключить в кавычки значение, которое могло бы иметь запятые или кавычки.

>>> x= ['a', 'one "two" three', 'foo, bar', 'both"\'']
>>> print ", ".join( map(quote,x) )
a, 'one "two" three', 'foo, bar', 'both"\''
1
ответ дан 10 December 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: