亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 JSON 文件中按字母順序按一個字符串對列表進行排序

如何在 JSON 文件中按字母順序按一個字符串對列表進行排序

喵喵時光機 2021-12-21 15:04:39
我需要按“類別”字符串的字母順序對產品列表進行排序。我試過,.sort()但每次都會出錯。這是我最接近使它工作的方法:import jsonwith open("broken_database.json", "r", encoding="utf-8") as file:    broken_database = json.load(file)    for case in broken_database:        case["category"] = sorted(case["category"], key = lambda category: category)with open("broken_database.json", "w", encoding="utf-8") as file:    json.dump(broken_database, file, indent=2)print(broken_database)我希望得到這樣的東西:{    "id": 1911864,    "name": "M?use G?mer Pred?t?r ¢estus 510 F?x Pret?",    "price": "699",    "category": "Acessórios"  }, {    "id": 9746439,    "name": "H?me The?ter LG ¢?m ?lu-r?y 3D, 5.1 ¢?n?is e 1000W",    "quantity": 80,    "price": 2199,    "category": "Eletr?nicos"  },首先是“Acessórios”,然后是“Eletr?nicos”,但我得到了:{    "id": 3500957,    "name": "Monitor 29 LG FHD Ultrawide com 1000:1 de contraste",    "quantity": 18,    "price": 1559.4,    "category": [      "E",      "c",      "e",      "i",      "l",      "n",      "o",      "r",      "s",      "t",      "\u00f4"    ]  },  {    "id": 1911864,    "name": "Mouse Gamer Predator cestus 510 Fox Preto",    "price": 699.0,    "category": [      "A",      "c",      "e",      "i",      "o",      "r",      "s",      "s",      "s",      "\u00f3"    ],    "quantity": 0  }]我不知道我哪里出錯了,該.sort()命令沒有像往常一樣工作,因為這是我第一次嘗試在 JSON 文件中使用它,我猜我在這里遺漏了一些東西.
查看完整描述

1 回答

?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

你快到了。嘗試使用 key 函數對原始列表進行排序:


import json


with open("broken_database.json", "r", encoding="utf-8") as file:

    broken_database = json.load(file)

    broken_database.sort(key=lambda case: case["category"])


with open("broken_database.json", "w", encoding="utf-8") as file:

    json.dump(broken_database, file, indent=2)


print(broken_database)


查看完整回答
反對 回復 2021-12-21
  • 1 回答
  • 0 關注
  • 327 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號