如何只从SQL Server PYODBC查询中获取值?

时间:2015-06-29 01:55:31

标签: python sql dictionary pyodbc

我有一个python脚本,我只想将几个项目附加到JSON对象的顶级字典中。但是,有内部词典,我需要附加不是列名,而只是附加值。为了使它更容易,我只想将值附加到我已经硬编码的键上。这是我的脚本的一个例子。

SELECT
  ROW_NUMBER() OVER ( ORDER BY T.SupplierItemCode) AS LineNumber,
  T.EAN,
  T.CustomsCode,
  T.SupplierItemCode,
  T.ItemDescription,
  T.ItemNote,
  T.VATType,
  T.PackageType,
  T.OrderQuantity,
  T.UnitOfMeasure,
  T.OrderedUnitNetPrice
FROM
  (
    SELECT
      NULL AS EAN,
      NULL AS CustomsCode,
      ProductId AS SupplierItemCode,
      '![CDATA[' + Product.Name + ']' AS ItemDescription,
      '![CDATA[' + Product.ShortDescription + ']' AS ItemNote,
      NULL AS VATType,
      'CU' AS PackageType,
      Quantity AS OrderQuantity,
      'darab' AS UnitOfMeasure,
      UnitPriceExclTax AS OrderedUnitNetPrice
    FROM
      [Order]
      INNER JOIN OrderItem
        ON [Order].Id = OrderItem.OrderId
      INNER JOIN Product
        ON OrderItem.ProductId = Product.Id
    WHERE
      OrderId = '150960'
    UNION
    SELECT
      NULL AS EAN,
      NULL AS CustomsCode,
      '00001' AS SupplierItemCode,
      '![CDATA[Szállítási díj]' AS ItemDescription,
      '![CDATA[A termék postázási költsége]' AS ItemNote,
      NULL AS VATType,
      'CU' AS PackageType,
      '1' AS OrderQuantity,
      'darab' AS UnitOfMeasure,
      OrderShippingExclTax AS OrderedUnitNetPrice
    FROM
      [Order]
    WHERE
      [Order].Id = '150960'
  ) T

输出:

import pyodbc
import json
import collections
import requests
import time
import logging
import httplib
import datetime
import logging
import logging.handlers


start = time.time()
pyFC = "SCData.DBO.SO_SC_1"

connstr = 'DRIVER={SQL Server};SERVER=server;DATABASE=SCData; UID=;PWD=
conn = pyodbc.connect(connstr)
cursor = conn.cursor()
FN_SRNumber = "SRNumber"
lFields = [""]

#lFields = ["SRNumber"]
sFields = ""


for fld in lFields:
    if(sFields==""):
        sFields = fld
    else:
        sFields = sFields + "," + fld


#sSQL = "SELECT SRNumber FROM {}".format(pyFC)
# sSQL = "SELECT {} FROM {}".format(sFields, pyFC)
cursor.execute("""SELECT SRNumber, last_edited_user, ITEM_1,ITEM_2,ITEM_3,ITEM_4,ITEM_5,ITEM_6,ITEM_7,ITEM_8,ITEM_9,ITEM_10, QYT_1,QYT_2,QYT_3,QYT_4,QYT_5,QTY_6,QTY_7,QTY_8,QTY_9,QTY_10, RESOLUTION_CODE
FROM SO_SC_1
WHERE SRNumber LIKE '%1-%'""")
# cursor.execute(sSQL)



columns = [column[0] for column in cursor.description]
#columns = lFields
ii = 0
for row in cursor.fetchall():
    lResults = []    #make sure lResults are initiated here
    lValues = []
    for i in range(len(columns)):
        lValues.append( str(row[i]))
    SRNumber =  lValues[0]
    driverfirst = lValues [1]
    # BulkyItem1 = lValues [2]
    # BulkyItem2 = lValues [2]
    # BulkyItem3 = lValues [3]
    # BulkyItem4 = lValues [4]
    # BulkyItem5 = lValues [5]
    # BulkyItem6 = lValues [6]
    # BulkyItem7 = lValues [7]
    # BulkyItem8 = lValues [8]
    # BulkyItem9 = lValues [9]
    # BulkyItem10 = lValues [10]
    BulkyQ1 = lValues [11]
    # BulkyQ2 = lValues [12]
    # BulkyQ3 = lValues [13]
    # BulkyQ4 = lValues [14]
    # BulkyQ5 = lValues [15]
    # BulkyQ6 = lValues [16]
    # BulkyQ7 = lValues [17]
    # BulkyQ8 = lValues [18]
    # BulkyQ9 = lValues [19]
    # BulkyQ1 = lValues [20]
    ResCode = lValues [21]

    #dResult = dict(zip(columns, row))
    dResult = dict(zip(columns, lValues))
    # Adding additional items  ******************************
    dResult.setdefault("ResolutionCode", ResCode )
    dResult.setdefault("UpdatedByUserLogin", 'MYLA-SAN2')
    #dResult.setdefault("ListOfLa311ElectronicWaste", dict())

    l311 = []
    d = dict()
    d.setdefault("DriverFirstName", driverfirst )
    d.setdefault("DriverLastName","placeholder" )
    d.setdefault("BulkyItemType", "Basketball Set" )
    # d.setdefault("BulkyItemCount", BulkyQ1)
    d.setdefault("Name", "061020150957233612")
    d.setdefault("BulkyItemCount", BulkyQ1 )
    l311.append(d)
    d = dict()
    d.setdefault("DriverFirstName", driverfirst)
    d.setdefault("DriverLastName", "West")
    d.setdefault("BulkyItemType", "Basketball Set")
    d.setdefault("Type", "Bulky Item")
    d.setdefault("BulkyItemCount", 2)
    l311.append(d)
    d.setdefault("DriverFirstName", "Geoffrey")
    d.setdefault("DriverLastName", "West")
    d.setdefault("BulkyItemType", "Basketball Set")
    d.setdefault("Type", "Bulky Item")
    d.setdefault("BulkyItemCount", 2)
    l311.append(d)
    d.setdefault("DriverFirstName", "Geoffrey")
    d.setdefault("DriverLastName", "West")
    d.setdefault("BulkyItemType", "Basketball Set")
    d.setdefault("Type", "Bulky Item")
    d.setdefault("BulkyItemCount", 2)
    l311.append(d)
    d.setdefault("DriverLastName", "West")
    d.setdefault("BulkyItemType", "Basketball Set")
    d.setdefault("Type", "Bulky Item")
    d.setdefault("BulkyItemCount", 2)
    l311.append(d)
    d.setdefault("DriverFirstName", "Geoffrey")
    d.setdefault("DriverLastName", "West")
    d.setdefault("BulkyItemType", "Basketball Set")
    d.setdefault("Type", "Bulky Item")
    d.setdefault("BulkyItemCount", 2)
    l311.append(d)
    d.setdefault("DriverFirstName", "Geoffrey")
    d.setdefault("DriverLastName", "West")
    d.setdefault("BulkyItemType", "Basketball Set")
    d.setdefault("Type", "Bulky Item")
    d.setdefault("BulkyItemCount", 2)
    l311.append(d)
    d.setdefault("DriverFirstName", "Geoffrey")
    d.setdefault("DriverLastName", "West")
    d.setdefault("BulkyItemType", "Basketball Set")
    d.setdefault("Type", "Bulky Item")
    d.setdefault("BulkyItemCount", 2)
    l311.append(d)
    d.setdefault("DriverFirstName", "Geoffrey")
    d.setdefault("DriverLastName", "West")
    d.setdefault("BulkyItemType", "Basketball Set")
    d.setdefault("Type", "Bulky Item")
    d.setdefault("BulkyItemCount", 2)
    l311.append(d)
    d.setdefault("DriverFirstName", "Geoffrey")
    d.setdefault("DriverLastName", "West")
    d.setdefault("BulkyItemType", "Basketball Set")
    d.setdefault("Type", "Bulky Item")
    d.setdefault("BulkyItemCount", 2)
    l311.append(d)



    dL311 = dict()
    dL311.setdefault("BulkyItem", l311)
    dResult.setdefault("ListOfLa311BulkyItem",dL311)
    dOthers = dict()
    #Adding empty dictionaries;
    dResult.setdefault("ListOfLa311IllegalDumpingPickup", dOthers)
    dResult.setdefault("ListOfLa311ManualPickup", dOthers)
    dResult.setdefault("ListOfLa311MetalHouseholdAppliancesPickup", dOthers)
    dResult.setdefault("ListOfLa311MoveInMoveOut", dOthers)
    dResult.setdefault("ListOfLa311ServiceNotComplete", dOthers)
    #Ends of adding additional itmes ****************************************
    lResults.append({"MetaData": {}, "SRData": dResult})
    print lResults

我的脚本的逻辑是添加键:ITEM_1和QTY_1等变量的值,我只想将每个值中的值添加到硬编码的'ListOfLa311BulkyItem`下的字典中。

0 个答案:

没有答案