我有一个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`下的字典中。