簡體   English   中英

如何為JSON對象分配密鑰?

[英]How to assign keys to JSON objects?

我有一個腳本,該腳本在SQL Server數據庫中獲取數據並將其解析為key:value對JSON。 我想在JSON字典中給出這三個項目; 一鍵,例如最高級別的“ ServiceRequest”。 這樣我的輸出將顯示為:

{
    "ServiceRequest": [
        {
            "SRNUMBER": "1-3580171",
            "FirstName": "Myla",
            "LastName": "Threeoneone"
        }
    ]
}

程序:

import pyodbc
import json
import collections
import requests

import urllib

connstr = 'DRIVER={SQL Server};SERVER=ServerName;DATABASE=DataBase; UID=UID;PWD=PWD'
conn = pyodbc.connect(connstr)
cursor = conn.cursor()

cursor.execute("""
            SELECT SRNUMBER, FirstName, LastName
 FROM MYLA311 """)

rows = cursor.fetchall()

# Convert query to row arrays

rowarray_list = []
for row in rows:
    t = (row.SRNUMBER)
    rowarray_list.append(t)

j = json.dumps(rowarray_list)
rowarrays_file = 'student_rowarrays.js'
f = open(rowarrays_file,'w')

# Convert query to objects of key-value pairs

objects_list = []
for row in rows:
     d = collections.OrderedDict()
     d['SRNUMBER']= row.SRNUMBER
     d['FirstName']= row.FirstName
     d['LastName']= row.LastName

objects_list.append(d)

j = json.dumps(objects_list)
objects_file = 'C:\Users\Administrator\Desktop\JSONOutput.txt'
f = open(objects_file,'w')
print >> f, j

print j

conn.close()

實際輸出:

[
    {
        "SRNUMBER": "1-3580171",
        "FirstName": "Myla",
        "LastName": "Threeoneone"
    }
]

JSON和Python字典非常相似。

您所需的輸出已經是有效的Python:

{
    "ServiceRequest": [
        {
            "SRNUMBER": "1-3580171",
            "FirstName": "Myla",
            "LastName": "Threeoneone"
        }
    ]
}

因此,您需要做的就是將對象列表包裝在Python字典中:

output = {
    'ServiceRequest': object_list
}

# then dump it
json.dumps(output)
# ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM