如何计算每个用户写了多少条消息?唯一标识符-userId
从这里我加载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)
答案 0 :(得分:2)
这就是collections.Counter
的工作:
from collections import Counter
counter = Counter(item['userId'] for item in items)
print(counter)
答案 1 :(得分:1)
from collections import defaultdict
d = defaultdict(int)
for item in result_text_one_json:
d[item['userId']] += 1
d
的最后将是字典,其中将user_ids作为密钥,并将每个人的消息计数作为其值。
演示:
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})
答案 2 :(得分:1)
您可以遍历每个用户并以userId
为键,并以显示的项数为值来构建字典。
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
初始化每个键。