从https://jsonplaceholder.typicode.com/todos的数据中,我想按用户计算“已完成”的项目。
目前,我通过首先收集现有的用户 ID 键来解决此问题,然后为数据集中的每个元素检查其是否由当前用户拥有并附加到该用户的项目列表中。
users_items = {}
import json
from urllib import request
# Data from
uri = "https://jsonplaceholder.typicode.com/todos"
response = request.urlopen(uri).read()
data = json.loads(response)
def get_user_ids(items):
for item in items:
users_items[item['userId']] = None
def get_user_items():
for uid in users_items:
items = []
for item in data:
if(item['userId'] == uid):
items.append(item['completed'])
users_items[uid] = items
done_items_by_user = {}
def count_completed_by_user():
for user in users_items:
done_items_by_user[user] = sum(users_items[user])
get_user_ids(data)
get_user_items()
我特别不喜欢双循环和字典值的初始化,其中包含一个空列表get_users_ids。