私は半日インターネットを調べてきました、そして私は近づき続けていますが、それはいつも少し異なります。私の目標は、JSONサブ要素リストを取得し、そこにKEYで並べ替えることです。キーを除いて、文字列である数字です。例:
print (json_reply['top']['sub'])
私を得る:
{'9': 800, '1': 800, '3': 800, '8': 800, '6': 800, '5': 800, '7': 800, '10': 700, '4': 800, '2': 800}
だから私はインターウェブで見つけたものからそれを並べ替えようとします
sorted_reply = (sorted(json_reply['top']['sub'].items()))
私を得る:
[('1', 800), ('10', 700), ('2', 800), ('3', 800), ('4', 800), ('5', 800), ('6', 800), ('7', 800), ('8', 800), ('9', 800)]
違いますが近いです。今ではJSONではないようです(私はまだそれを扱うことができるのでそれほど大きくはありません)が、10が次々に来るのを見ることができます。文字列だと思っているからだと思います。JSONの並べ替え方法も試しましたが、結果は同じで、JSON形式だけです。私が見つけ続けているトピックには、キーではなく値を並べ替えようとしている人々がいます。与えられたソリューションをできる限り変更しようとしましたが、機能しません。
では、キーが文字列ではなく整数であるかのようにこれを並べ替えて、「10」が最後になるようにするにはどうすればよいですか。JSON形式のままかどうかは関係ありません。
並べ替えを指定しますkey
。これは、並べ替える値を提供するために各要素に適用される関数です。
sorted(json_reply['top']['sub'].items(), key=lambda i: int(i[0]))
デモ:
>>> d = {'9': 800, '1': 800, '3': 800, '8': 800, '6': 800, '5': 800, '7': 800, '10': 700, '4': 800, '2': 800}
>>> sorted(d.items(), key=lambda i: int(i[0]))
[('1', 800), ('2', 800), ('3', 800), ('4', 800), ('5', 800), ('6', 800), ('7', 800), ('8', 800), ('9', 800), ('10', 700)]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加