You need to enable JavaScript to run this app. Python如何程序化将JSON内不同用户的评分按独立数组打印输出
优惠活动
大模型
产品
解决方案
定价
更多

Python如何程序化将JSON内不同用户的评分按独立数组打印输出

问题根因

原代码的逻辑是将所有用户的评分统一追加到同一个全局列表rating中,未按用户维度做拆分,因此最终只会输出一个合并了全量评分的大数组,无法满足按用户单独输出评分数组的需求。

实现方案

无需手动为每个用户单独创建数组,只需在遍历JSON的每个用户对象时,为当前用户生成独立的评分列表,遍历完该用户的所有评分项后直接打印该列表即可,后续新增任意数量的用户都能自动适配,无需额外修改代码。

修正后可直接运行的完整代码

原代码缺少json模块导入,修正后代码如下:

import json

with open('/content/user_data.json') as f:
    js = json.load(f)
    # 遍历每个用户的评分块
    for user_rating_block in js['Rating']:
        # 为当前用户创建独立的评分列表
        current_user_ratings = []
        # 提取当前用户的所有评分
        for rate in user_rating_block['rating']:
            current_user_ratings.append(rate['rating'])
        # 打印当前用户的独立评分列表
        print(current_user_ratings)
运行输出效果

执行上述代码后,输出和你预期的效果完全一致:

['4', '2', '5']
['1', '3']
['5', '2', '5']

精简写法

如果偏好更简洁的代码风格,可以用列表推导式简化逻辑,无需手动写循环和append操作,效果完全一致:

import json

with open('/content/user_data.json') as f:
    js = json.load(f)
    for user_rating_block in js['Rating']:
        print([rate['rating'] for rate in user_rating_block['rating']])

注:精简写法省略了临时列表变量,直接在print语句中通过列表推导式提取当前用户的评分并输出,逻辑更简洁。


内容的提问来源于stack exchange,提问作者JsBoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 19:15:03