You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按指定格式打印JSON课程数据:每行显示一组课程编码与名称

问题:按指定格式打印JSON中的课程信息

用户有一个存储课程信息的JSON文件,希望每行输出一个课程的课程代码(CourseCode)和课程名称(CourseName),格式示例如下:

FHSC1014 MECHANICS
FHCT1024 PROGRAMMING CONCEPT AND DESIGN

但当前编写的Python代码会逐个打印字段名,无法实现预期效果。

附:JSON文件内容

{
    "x": [
        {
            "CourseCode" : "FHSC1014",
            "CourseName" : "MECHANICS"
        },
        {
            "CourseCode" : "FHCT1024",
            "CourseName" : "PROGRAMMING CONCEPT AND DESIGN"
        }
    ]
}

用户尝试的代码

import json  # 原代码遗漏了导入json模块
with open("test.json", 'r+') as f: 
    data = json.load(f)
    x = data['x']
    for i in x:
        for j in i:
            print(j)

解决方案

不需要嵌套循环,直接遍历每个课程字典,提取对应的CourseCode和CourseName值,使用格式化输出实现对齐:

方法1:制表符分隔(简单快捷)

import json
with open("test.json", 'r') as f: 
    data = json.load(f)
    for course in data['x']:
        # 用制表符分隔两个字段,快速实现对齐
        print(f"{course['CourseCode']}\t{course['CourseName']}")

方法2:指定宽度对齐(精准排版)

如果需要更统一的对齐效果,可以固定课程代码的输出宽度:

import json
with open("test.json", 'r') as f: 
    data = json.load(f)
    for course in data['x']:
        # 课程代码占10个字符宽度并左对齐,后续拼接课程名称
        print("{:<10} {}".format(course['CourseCode'], course['CourseName']))

原代码问题说明

原代码中的嵌套循环for j in i遍历的是字典的键名(即字符串"CourseCode"和"CourseName"),所以会逐个打印这些字段名,而非我们需要的字段值。直接通过键名提取对应的值即可解决问题。


内容的提问来源于stack exchange,提问作者Cheah Ken Win

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 22:07:33