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

读写JSON文件:提取指定字段绑定单选按钮及删改需求技术问询

没问题,我来帮你一步步实现这些功能!下面我会用Python作为示例(你可以根据自己的开发语言调整核心逻辑),把每个需求拆解清楚:

1. 读取JSON文件并提取指定字段

首先我们要读取JSON文件,然后只保留每条记录里的name、date、time三个字段,过滤掉不需要的lat、lon、image_name:

import json

# 读取JSON文件的通用函数
def load_json(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        return json.load(f)

# 提取需要的字段
def filter_required_fields(raw_data):
    filtered_records = []
    for record in raw_data:
        filtered_records.append({
            "name": record.get("name"),
            "date": record.get("date"),
            "time": record.get("time")
        })
    return filtered_records

# 调用示例
raw_data = load_json("your_records.json")
target_records = filter_required_fields(raw_data)
2. 将字段值绑定到Radio Button

假设你用Python的Tkinter做GUI,这里给出把前两条记录绑定到单选按钮的示例(其他GUI框架逻辑一致:提取对应记录的字段,拼接成按钮文本并绑定值):

import tkinter as tk

root = tk.Tk()
root.title("Record Selector")

# 用StringVar管理单选按钮的选中状态
selected_name = tk.StringVar()

# 绑定第一条记录到radio button1
if len(target_records) >= 1:
    record1 = target_records[0]
    radio1 = tk.Radiobutton(
        root,
        text=f"{record1['name']} | {record1['date']} {record1['time']}",
        variable=selected_name,
        value=record1["name"]
    )
    radio1.pack(pady=5)

# 绑定第二条记录到radio button2
if len(target_records) >= 2:
    record2 = target_records[1]
    radio2 = tk.Radiobutton(
        root,
        text=f"{record2['name']} | {record2['date']} {record2['time']}",
        variable=selected_name,
        value=record2["name"]
    )
    radio2.pack(pady=5)

root.mainloop()
3. 删除指定name的记录

遍历JSON数据,过滤掉目标name的记录后写回文件即可:

def delete_record(file_path, target_name):
    data = load_json(file_path)
    # 保留所有name不等于目标值的记录
    updated_data = [r for r in data if r.get("name") != target_name]
    # 写回文件(indent=4让JSON格式更美观)
    with open(file_path, 'w', encoding='utf-8') as f:
        json.dump(updated_data, f, indent=4)

# 调用示例:删除名为"Tom"的记录
delete_record("your_records.json", "Tom")
4. 更新指定name的记录

找到对应name的记录,修改指定字段后写回文件(假设name是唯一标识):

def update_record(file_path, target_name, new_info):
    data = load_json(file_path)
    for record in data:
        if record.get("name") == target_name:
            # 更新传入的字段(比如date和time)
            record.update(new_info)
            break  # 找到目标记录后退出循环
    # 写回文件
    with open(file_path, 'w', encoding='utf-8') as f:
        json.dump(data, f, indent=4)

# 调用示例:更新名为"Lisa"的记录的日期和时间
update_record("your_records.json", "Lisa", {"date": "2024-05-21", "time": "10:00"})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:47:11