官方解答 · 置頂Python
官方解答|資料交換檢視
官方解答
Python #398:資料交換檢視
解題規則
檢視工具需要從同一份 JSON 資料取得兩項資訊。
匯入 json。兩項都使用原始輸入分別計算,不讓前一項改變後一項資料。第一項是解析後的 Python 資料,JSON null 對應 None;第二項是json.dumps(data, sort_keys=True, ensure_ascii=False, separators=(", ", ": ")) 的結果;所有字典鍵都排序,逗號及冒號後各有一個空格、不縮排。回傳 [第一項,第二項]。 以上 data 指 json.loads(text) 解析後的資料;JSON 編碼的這一項結果是文字,空白格式也屬於該項結果的一部分。
處理步驟
匯入 json;兩項皆用原始參數獨立計算,再依題目順序回傳兩格清單。 先用 json.loads 解析 text,之後才讀欄位或用 json.dumps 產生文字;Python None、True、False 分別對應 JSON null、true、false。
為何正確
標準模組函式各自實作所指定的日期、文字或統計運算。篩選依原值、轉換依保留項目、摘要依規定集合進行,因此輸出的資料來源與型態一致。
邊界與注意事項
本題輸入範圍:JSON 可為 null、布林值、數字、字串、清單或鍵為字串的字典;最多兩層巢狀、20 個元素。
範例追蹤
依參數順序 text 傳入 ["0"]。關鍵中間資料為 data = 0。最後回傳 [0, '0']。結果由 return 回傳,不使用 print。
複雜度
設 JSON 輸入/輸出總長度 B、鍵總數 k、最大鍵長 ℓ;解析和輸出時間 O(B),鍵排序另需最壞 O(kℓ log k),總空間 O(B+k)。
CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式
import json
def solve(text):
data = json.loads(text)
return [data, json.dumps(data, ensure_ascii=False, sort_keys=True)]
留言討論 0
登入 後就能留言,一起討論不同的寫法。