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

    fetchall()を使用して辞書を作成しようとしています。辞書へのPyODBC結果

    私は必要なものを説明しようとします。私は辞書を作りたいのPythonでこれにので、

    OUT

    今私は次のコードを持っている:

    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で出ている:私は、Pythonに次のコードを持っています:

    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) 
    

    しかし、これが出力されます。

    OUT

    そして、私は次のようにしたい:

    {'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

    関連する問題