微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

字典的内部顺序在 XMLHTTPRequest 中的 JSON.parse() 之后发生变化

如何解决字典的内部顺序在 XMLHTTPRequest 中的 JSON.parse() 之后发生变化

直接调用端点的代码

def countSongsFull():
    for i in range(0,len(shArray)):
        for j in range(0,len(shArray[i])):  # For every song
            if shArray[i][j]['trackName'] == "Vintage Chanel (feat. Joey Bada$$,Kirk Knight,Meechy Darko & Zombie Juice)":
                shArray[i][j]['trackName'] = "Vintage Chanel (feat. Joey Badass,Meechy Darko & Zombie Juice)"
            track = shArray[i][j]['trackName']
            artist = shArray[i][j]['artistName']
            if track in songDict:
                songDict[track][1] += shArray[i][j]['msPlayed']
            else:
                songDict.update({track: [artist,shArray[i][j]['msPlayed']]})

    sortedList = OrderedDict(sorted(songDict.items(),key=lambda item: item[1][1],reverse=True))
    return json.dumps(sortedList,separators=(',',':'))

直接调用端点时的输出

{"UnkNown Track":["UnkNown Artist",121091397],"Blind":["Korn",32389011],"Falling Away from Me":["Korn",31157418],"Hot Dog":["Limp Bizkit",30380901],"Closer":["Nine Inch Nails",29512377],"It's On!":["Korn",28081239],"Be Quiet and Drive (Far Away)":["Deftones",24715597],"Justin":["Korn",24513041],"Dirty":["Korn",24267603],"Psycho Holiday":["Pantera",24170972]}

XMLHTTPRequest 代码

var replyParse;
    var http = new XMLHttpRequest();
    http.open('GET','/cgi-bin/simpleData.py?songF=True',true);
    http.setRequestHeader('content-type','application/x-www-form-urlencoded');
    http.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            replyParse = JSON.parse(this.responseText);
            console.log(replyParse);
        }
    };
    http.send(null);

XMLHTTPRequest 之后的控制台输出

{745: Array(2),1985: Array(2),2002: Array(2),3005: Array(2),5200: Array(2),90210: Array(2),UnkNown Track: Array(2),Blind: Array(2),Falling Away from Me: Array(2),Hot Dog: Array(2),Closer: Array(2)}

为什么在 XMLRequest 之后订单会发生变化,我该如何纠正?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。