python - How to assign one JSON key to all output dictionaries? -


i working pyodbc iterate through table return records json , send server validation. able iterate , return rows, however, server expecting json in format below. how iterate through results , append {"metadata": {}, "srdata": keys each iterated result/output? code below. desired output:

{     "metadata": {},      "srdata": {         "srnumber": "1-3580671"     } },  {     "metadata": {},      "srdata": {         "srnumber": "1-3580156"     } } 

code:

import pyodbc import json import requests      connstr = 'driver={sql server};server=server;database=servicerequest; uid=sa;pwd=pwd'     conn = pyodbc.connect(connstr)     cursor = conn.cursor()      cursor.execute("""select srnumber containerfc""")      columns = [column[0] column in cursor.description]      results = []     row in cursor.fetchall():         results.append(dict(zip(columns, row)))      output = {"metadata": {}, "srdata": results}       print(json.dumps(output, sort_keys=true, indent=4))      objects_file = 'c:\users\administrator\desktop\jsonoutput.txt'     f = open(objects_file,'w')      url = "url"     headers = {'content-type': 'text/plain', 'accept': '/'}     r = requests.post(url, data= json.dumps(output), headers=headers,  verify=false)      print >> f      print 'it took', time.time()-start, 'seconds.'       conn.close() 

current output:

{     "metadata": {},     "srdata": [         {             "srnumber": "1-3140751"         },         {             "srnumber": "1-5574551"         }     ] } 

perhaps this?

import json import pyodbc cnxn = pyodbc.connect("dsn=mydb_sqlexpress") cursor = cnxn.cursor() sql = """ select '1-3580671' srnumber, 'foo' thing union select '1-3580156' srnumber, 'bar' thing """ cursor.execute(sql) columns = [column[0] column in cursor.description]  results = [] row in cursor.fetchall():     result = dict(zip(columns, row))     results.append({"metadata": {}, "srdata": result})  cnxn.close()  print(json.dumps(results, sort_keys=true, indent=4)) 

returning

[     {         "metadata": {},         "srdata": {             "srnumber": "1-3580671",             "thing": "foo"         }     },     {         "metadata": {},         "srdata": {             "srnumber": "1-3580156",             "thing": "bar"         }     } ] 

Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -