python
  • mysql
  • pyodbc
  • 2017-09-27 6 views 1 likes 
    1

    fetchall()을 사용하여 결과가있는 사전을 만들려고합니다.사전에 대한 PyODBC 결과

    나는 내가 필요한 것을 설명하려고 노력할 것이다. 내가 파이썬에서 다음과 같은 코드가 있습니다

    conexiones = crsr_kala.execute("SELECT dst_srv, dst_db FROM info_skill_vdn_campana WHERE activo = 1 AND pbx = 'V2' GROUP BY dst_srv;").fetchall() 
    

    을 그리고 이것은 SQL에서 밖으로 : 나는 사전을 만들고 싶어 파이썬이 너무

    OUT

    , 지금은 다음 코드를 :

    col = [column[0] for column in conexiones] 
    res = [] 
    for row in conexiones: 
        res.append(dict(zip(col, row))) 
    cox2 = collections.defaultdict(set) 
    for d in res: 
        for k, v in d.iteritems(): 
         cox2[k].add(v) 
    

    하지만이 출력됩니다 :

    내가 그 출력을 가지고 내 실제 코드를 편집하는 방법을 몰라,

    {'172.59.xx.xx': set([PBX_es]), '172.65.xx.xx': set([PBX_pt]), '172.72.xx.xx': set([PBX_mx])} 
    

    그러나 :

    와 나는 밖으로 다음과 같은 갖고 싶어.

    도와주세요!

    답변

    1

    너는 그것을 생각해 본다. 먼저 {'dst_srv': .., 'dst_db': ..}의 목록을 만들었지 만 실제로 필요하지는 않습니다.

    cox2 = collections.defaultdict(set) 
    for k,v in conexiones: 
        cox2[k].add(v) 
    
    +0

    작동합니다! 하지만 str으로 설정된 값을 변경하는 방법이 있는지 알고 있습니까? – Urkidy

    +0

    str을 설정하면 무엇을 의미합니까? '{ '1', '2'}'~'1,2'? – Fabricator

     관련 문제

    • 관련 문제 없음^_^