使用变量计数将字符串转换为字典

2024-10-17 06:31:10 发布

您现在位置:Python中文网/ 问答频道 /正文

这是输出的一个片段:

           {...,"resultMap":
            {..."SEARCH_RESULTS":
             [{..."resultList":[
              {"userClientId":"1"","preferenceValues":["48","51","94"],"MyDate":"7/26/2017 8:30:00 AM"},
              {"userClientId":"2","preferenceValues":["42","11","84"],"MyDate":"7/26/2017 9:40:00 AM"},
              {"userClientId":"3","preferenceValues":["4","16","24"],"MyDate":"7/26/2017 4:20:00 PM"},
              {"userClientId":"4","preferenceValues":["7","2","94"],"MyDate":"7/27/2017 8:00:00 AM"},
              {"userClientId":"1","preferenceValues":["48","22","94"],"MyDate":"7/27/2017 1:50:00 PM"},
              {"userClientId":"2","preferenceValues":["42","11"],"MyDate":"7/27/2017 2:00:00 PM"},
              {"userClientId":"3","preferenceValues":["4","24"],"MyDate":"7/27/2017 6:15:00 PM"},
              {"userClientId":"4","preferenceValues":"7","MyDate":"7/27/2017 9:30:00 PM"}]
             }]
            }
           }

我希望得到一个字典格式的变量pageIdCount,其中键是page\u id,值是page\u id出现次数的计数,按用户id排列。因此,对于userId 1,它应该如下所示:

{"userClientId":"1","preferenceValues":{48:2, 51:1, 94:2, 22:1}}

请注意,当preferenceValues中只有一个变量时,没有括号。还有一个“preferenceValue”字段,其中没有括号,否则与“preferenceValues”相同。你知道吗

有可能吗?你知道吗

在Python2.7中,我指定用户、密码和url,然后我有以下内容:

req = requests.post(url = url, auth=(user, password))
ans = req.json()

print ["resultMap"]["SEARCH_RESULTS"][0]["resultList"]

非常感谢您的帮助。你知道吗


Tags: 用户idurlsearchpageamreqresults
1条回答
网友
1楼 · 发布于 2024-10-17 06:31:10
your_data # this is your data
final_data = {}
for line in yourdata:
    uid = line["userId"]
    pids = line["PageId"]
    if uid not in final_data :
        final_data[uid] = {}
    for pid in pids :
        pid = int(pid)
        if pid not in final_data[uid]:
            final_data[uid][pid]=0
        final_data[uid][pid] += 1
res = [{"userId":uid,"PageIDCount":pids} for uid,pids in final_data.items()]

我想您正在开始,如果是这样的话,这段代码最棘手的部分可能是最后一行,它使用列表理解。这里是a good lesson。你知道吗

相关问题 更多 >