如何计算信息的数量?

2024-09-29 01:26:25 发布

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

如何计算每个用户写了多少条消息?唯一标识符-用户ID

从这里加载json:http://jsonplaceholder.typicode.com/posts

result_one = requests.get('http://jsonplaceholder.typicode.com/posts')
result_text_one_json = json.loads(result_one.text)
for item in result_text_one_json:
    print(item)

Tags: text用户comidjsonhttp消息标识符
3条回答

您可以遍历每个用户并构建一个dict,其中userId作为键,value作为所看到的项的计数。你知道吗

result_one = requests.get('http://jsonplaceholder.typicode.com/posts')
result_text_one_json = json.loads(result_one.text)
d = {}
for item in result_text_one_json:
    if item['userId'] not in d:
        d[item['userId']] = 0
    d[item['userId']] += 1

编辑:尽管两个答案的结果相同,@Kasr–mvd使用collections.defaultdict()的答案更简洁,因为您不需要用0初始化每个键。你知道吗

这就是^{}的工作:

from collections import Counter
counter = Counter(item['userId'] for item in items)
print(counter)

使用^{}

from collections import defaultdict

d = defaultdict(int)
for item in result_text_one_json:
    d[item['userId']] += 1

最后d将是一个字典,用户id作为它的键,每个消息的计数作为它的值。你知道吗

演示:

In [28]: from collections import defaultdict
    ...: 
    ...: d = defaultdict(int)
    ...: for item in result_text_one_json:
    ...:     d[item['userId']] += 1
    ...:     

In [29]: d
Out[29]: 
defaultdict(int,
            {1: 10,
             2: 10,
             3: 10,
             4: 10,
             5: 10,
             6: 10,
             7: 10,
             8: 10,
             9: 10,
             10: 10})

相关问题 更多 >