0
6つの列を持つMS-Accessテーブルがあります。私は最初の列を抽出し、それをキーとして使い、2列目と3列目を抽出し、Python辞書の値として使用したいと思います。 1つのキーには複数の値があります。MS-AccessテーブルからPython辞書を作成する
これは私がこれまで持っているものですが、私は次に何をすべきかを把握することはできません。
import numpy
import pyodbc
access_database_file = r"C:\Users\david\Documents\\LISTS.mdb"
ODBC_CONN_STR = r"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=%s;" % access_database_file
conn = pyodbc.connect(ODBC_CONN_STR)
cursor = conn.cursor()
cursor.execute("select * from LISTS")
print "..processing..."
rows = cursor.fetchall()
fieldDomains = {}
for row in rows:
k = row[0]
v1 = row[1]
v2 = row[2]
fieldDomains = {k: {v1: v2}}
print fieldDomains
私はfieldDomainsを印刷するとき、私はこれを取得:
{u'MAIN_VW': {u'PRESSURE_ZONE_NUM': u'LU_PRESSURE_ZONE_VW'}}
{u'MAIN_VW': {u'DIAMETER': u'LU_MAIN_DIAMR_LK_MV'}}
{u'MAIN_VW': {u'MATERIAL': u'LU_MAIN_MATRL_LK_MV'}}
{u'WATER_VW': {u'SUBTYPE': u'LU_WATER_SUBTYP_LK_MV'}}
{u'WATER_VW': {u'IS_RESTRAINED': u'LU_YES_NO_LK'}}
{u'PIPE_VW': {u'IS_TIE_IN': u'LU_YES_NO_LK'}}
{u'PIPE_VW': {u'ORIGIN': u'LU_PIPE_ORIGN_LK_MV'}}
私が欲しいマージする必要がありますこれらの別々の辞書を一つの大きな辞書にしていますが、現在のスクリプトでこれをどうやって行うのか分かりません。これは私が私の出力はこのようにしたいものです。
{u'MAIN_VW': {u'PRESSURE_ZONE_NUM': u'LU_PRESSURE_ZONE_VW', u'DIAMETER': u'LU_MAIN_DIAMR_LK_MV', u'MATERIAL': u'LU_MAIN_MATRL_LK_MV'}, u'WATER_VW': {u'SUBTYPE': u'LU_WATER_SUBTYP_LK_MV', u'IS_RESTRAINED': u'LU_YES_NO_LK', u'PIPE_VW': {u'IS_TIE_IN': u'LU_YES_NO_LK', u'ORIGIN': u'LU_PIPE_ORIGN_LK_MV'}}
私はPythonを初めて使っています。それはどのようにスクリプトに適用されますか? forループ内にこれを追加しますか? –
@DavidBaileyこれをコードに適用するには、まず 'data'オブジェクトを次のように取得する必要があります。' data = [{row [0]:{row [1]:row [2]}} –
@DavidBailey私は答えを更新しました.2番目の方法は、あなたが探している可能性が高いです –