大数跨境
0
0

Json数据格式

Json数据格式 AI科技在线
2026-01-07
7

转自:大学计算机基础

什么是JSON?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于文本,易于人阅读和编写,同时也易于机器解析和生成。JSON是独立于语言的,尽管它源自JavaScript,但它被广泛支持于多种编程语言,包括Python。

JSON的结构

JSON使用两种结构来表示数据:

  1. 对象(Object):键值对的集合,用花括号 {} 表示。键必须是字符串,值可以是字符串、数字、对象、数组、布尔值(true/false)或null。

  2. 数组(Array):值的有序集合,用方括号 [] 表示。数组中的值可以是任何JSON支持的类型。

JSON的示例

{  "name": "John Doe",  "age": 30,  "isEmployed": true,  "address": {    "street": "123 Main St",    "city": "Anytown"  },  "phoneNumbers": ["555-1234", "555-5678"]}

在这个示例中,我们定义了一个包含多个字段的对象,每个字段都有一个名称(键)和一个值。值可以是基本数据类型,也可以是对象或数组。

Python中的JSON处理

Python提供了一个内置的json模块来处理JSON数据。这个模块包括两个主要的函数:

  • json.loads():将JSON格式的字符串解析为Python对象(通常是字典或列表)。

  • json.dumps():将Python对象转换为JSON格式的字符串。

此外,还有两个函数用于文件操作:

  • json.load():从文件中读取JSON数据。

  • json.dump():将JSON数据写入文件。

实际应用案例

假设我们有一个在线商店,需要处理订单数据。我们可以使用JSON来存储订单信息,然后使用Python来处理这些数据。

import json
# 假设这是从服务器接收到的订单数据order_json = '''{  "customer": "John Doe",  "items": [    {"product": "Laptop",     "quantity": 1,     "price": 999.99    },    {"product": "Mouse",     "quantity": 2,     "price": 19.99    }  ],  "total": 1029.97}'''
# 解析JSON数据order = json.loads(order_json)
# 计算订单总额total = sum(item['price'] * item['quantity'for \item in order['items'])print(f"订单总额: {total}")
# 更新订单状态order['status'] = 'Shipped'
# 将更新后的订单写回文件with open('order.json''w'as f:    json.dump(order, f, indent=4)

在这个例子中,我们首先解析了一个包含订单信息的JSON字符串。然后,我们计算了订单的总额,更新了订单状态,并将更新后的订单信息写入了一个文件。

结论

对于大学生编程学员来说,理解JSON和掌握如何在Python中处理JSON是非常重要的。这不仅有助于你们理解数据如何在不同系统和应用程序之间传输,还能提升你们处理网络请求和响应的能力。通过实践操作,你们可以更好地理解JSON在实际编程中的应用,为未来的软件开发打下坚实的基础。


AI应用(识别下面图片,并让AI把它转成Json格式数据):

图片

(一)训练01、

提示词如下:

图片

KIMI给出的答案如下:

图片

解释

  • store_name:表示商店名称。

  • receipt:包含购物小票的详细信息。

    • code:商品编码。

    • product:商品名称。

    • quantity:购买数量。

    • price:商品价格。

    • cashier:收银员编号。

    • date:购物日期和时间。

    • items:一个数组,包含每个商品的详细信息。

  • total:所有商品的总价格。

  • message:感谢购物的信息。


(二)写代码统计Json数据中所有商品的价格的平均值,打印出来,要求使用Python语言来实现
import json
# 假设 json_data 是包含上面提供的JSON数据json_data = '''{  "store_name""WW STORE",  "receipt": {    "cashier""CASHIER#1",    "date""2021-06-01T08:08:00",    "items": [      {        "code""93",        "product""蓝色星球",        "quantity": 1,        "price": 88.0      },      {        "code""55",        "product""梦想盒子",        "quantity": 1,        "price": 88.0      },      {        "code""33",        "product""粉红飞机",        "quantity": 1,        "price": 88.0      }    ],    "total": 264.0  },  "message""THANK YOU FOR SHOPPING!"}'''
# 解析JSON数据data = json.loads(json_data)
# 获取所有商品的价格prices = [item['price'] for item in data['receipt']['items']]
# 计算平均价格average_price = sum(prices) / len(prices)
# 打印平均价格print(f"平均价格为: {average_price:.2f} 美元")
这段代码首先解析了包含在字符串json_data中的JSON数据。然后,它从解析的数据中提取了所有商品的价格,计算了这些价格的平均值,并将结果打印出来。在这个例子中,平均价格被格式化为两位小数。
prices = [item['price'] for item in data['receipt']['items']]
这个列表推导式的解释如下:
图片
图片
图片
图片
(三)做一个小项目
图片
它给出的Python代码如下:
import jsonimport randomfrom datetime import datetime
# 动物谜题题库 (20题)animal_quiz = {    "quiz": [        {   ...  ... .... }

def save_quiz_data():    """保存题库到文件"""    with open('animal_quiz.json''w'as f:        json.dump(animal_quiz, f, indent=4)

def load_quiz_data():    """从文件加载题库"""    try:        with open('animal_quiz.json''r'as f:            return json.load(f)    except FileNotFoundError:        save_quiz_data()        return animal_quiz

def save_score(name, score):    """保存玩家成绩"""    try:        with open('data.json''r'as f:            scores = json.load(f)    except (FileNotFoundError, json.JSONDecodeError):        scores = []
    scores.append({        "name": name,        "score": score,        "date": datetime.now().strftime("%Y-%m-%d %H:%M:%S")    })
    with open('data.json''w'as f:        json.dump(scores, f, indent=4)

def run_quiz():    """运行测验"""    print("=== 动物猜谜小测验 ===")    print("根据英文描述猜出动物名称(输入小写英文单词)\n")
    name = input("请输入你的名字: ").strip()    if not name:        name = "匿名玩家"
    quiz_data = load_quiz_data()    questions = random.sample(quiz_data['quiz'], 5)    score = 0
    for i, question in enumerate(questions, 1):        print(f"\n问题 {i}/5 (20分)")        print(question['description'])        answer = input("你的答案: ").strip().lower()
        if answer == question['answer']:            print("✅ 正确!")            score += 20        else:            print(f"❌ 错误! 正确答案是: {question['answer']}")
    print(f"\n=== 测验结束 ===")    print(f"{name} 的得分: {score}/100")
    save_score(name, score)    print("成绩已保存到 data.json")

if __name__ == "__main__":    run_quiz()
共178行
为方便排版,省略的Json数据如下图:
图片
项目测试过程如下:
图片
测验成绩保存如下:
现阶段AI写代码的能力非常强,正确可以达到99%以上。

声明:部分文字和图片来源于网络,仅供读者学术交充之目的。文章版权归原作者所有。如有不妥,请联系删除。
图片

【声明】内容源于网络
0
0
AI科技在线
1234
内容 1122
粉丝 0
AI科技在线 1234
总阅读4.0k
粉丝0
内容1.1k