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

如何用Python Selenium读写指定结构的names.json文件?

Python 读写 names.json 文件(结合 Selenium 数据采集)

读取文件内容

要读取names.json里的ignored列表,直接用Python内置的json模块即可:

import json

# 读取names.json文件
try:
    with open("names.json", "r", encoding="utf-8") as f:
        data = json.load(f)
        ignored_names = data.get("ignored", [])  # 若key不存在,返回空列表
        print("已读取的忽略名称:", ignored_names)
except FileNotFoundError:
    # 如果文件不存在,初始化空的ignored列表
    ignored_names = []
    print("文件不存在,初始化空列表")

写入/更新文件内容

假设你通过Selenium的for循环获取到了新的名称列表,以下是两种常见的写入场景:

场景1:追加新获取的名称(自动去重)

import json
from selenium import webdriver
from selenium.webdriver.common.by import By

# 初始化Selenium驱动(示例)
driver = webdriver.Chrome()
driver.get("你的目标页面URL")

# 模拟for循环获取名称
new_names = []
# 假设页面上的名称元素选择器是'.name-item',根据实际情况修改
for name_element in driver.find_elements(By.CSS_SELECTOR, ".name-item"):
    name = name_element.text.strip()
    if name:
        new_names.append(name)

driver.quit()

# 读取原有数据(如果存在)
try:
    with open("names.json", "r", encoding="utf-8") as f:
        data = json.load(f)
except FileNotFoundError:
    # 文件不存在时初始化指定结构
    data = {"ignored": []}

# 合并新名称并去重
existing_names = set(data["ignored"])
existing_names.update(new_names)
data["ignored"] = sorted(list(existing_names))  # 可选:对列表排序

# 写入文件,保持格式美观
with open("names.json", "w", encoding="utf-8") as f:
    json.dump(data, f, indent=4, ensure_ascii=False)

print(f"已成功写入{len(new_names)}个新名称到文件")

场景2:完全覆盖原有内容

如果需要用新获取的名称直接替换原来的ignored列表,修改合并部分即可:

# 直接替换ignored列表
data["ignored"] = new_names

# 后续写入代码同上
with open("names.json", "w", encoding="utf-8") as f:
    json.dump(data, f, indent=4, ensure_ascii=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:54:58