0
我有一個包含6列的MS-Access表。我想提取第一列並將其用作鍵,然後提取第二列和第三列並將它們用作Python字典中的值。一個鍵有多個值。從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我已經更新了答案,第二種方法更可能是你在尋找什麼 –