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
Post a Comment