2015-08-20 2 views
-5

Я не уверен, что именно это можно сделать, но я надеюсь, что кто-то может мне помочь. У меня есть строка, которая передается моему приложению Python.Анализ массива элементов

string = '41_1,41_2,41_3,44_2,44_4' 

Каждый из этих элементов (разделенных запятой) является строка идентификатора, то значение (например, 41_2 является строка ID 41, значение 2).

Таким образом, для указанной выше строки мне нужно обновить:

Row ID 41: myColumn value '1,2,3' 

Row ID 44: myColumn value '2,4' 

Из-за этого, мне нужно придумать синтаксис SQL, как следующий

UPDATE myTable SET myColumn = '1,2,3' WHERE id = 41; 

UPDATE myTable SET myColumn = '2,4' WHERE id = 44; 

Как я могу это сделать?

ответ

0
 #Updating code snippet by leplatrem 

     result = {'44': ['2', '4'], '41': ['1', '2', '3']} 

    for (k,v) in result.viewitems(): 
     temp_list = [str(i) for i in v] 
     temp_str = ",".join(temp_list) 
     temp_str = "'" + temp_str + "'" 
     print "UPDATE myTable SET myColumn={} where id={}".format(temp_str,k) 

#Output 

UPDATE myTable SET myColumn='2,4' where id=44 
UPDATE myTable SET myColumn='1,2,3' where id=41 
+0

Я не думаю, что вы читали мой оригинальный пост. Операторы sql неверны и будут означать, что данные теряются. – mattboston

+0

@mattboston: Обновлено. пожалуйста, проверьте –

0
>>> string = '41_1,41_2,41_3,44_2,44_4' 
>>> bits = [s.split('_') for s in string.split(',')] 
>>> for (key, value) in bits: 
...  result.setdefault(key, []).append(value) 
>>> result 
{'44': ['2', '4'], '41': ['1', '2', '3']} 
+0

Теперь, как я могу получить от { '44': [ '2', '4'], '41': [ '1', '2', '3'] } UPDATE myTable SET myColumn = '1,2,3' WHERE id = 41; UPDATE myTable SET myColumn = '2,4' WHERE id = 44; – mattboston

Смежные вопросы