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

如何获取JSON文件长度?聊天机器人语录JSON条目数查询咨询

用JSON文件存储聊天机器人语录的实用方案

嘿,我来帮你搞定这个小项目里的JSON存储问题~ 不用数据库完全没问题,咱们一步步来解决添加语录和统计条数的需求:

一、给JSON文件新增语录的正确姿势

直接往JSON文件末尾插内容肯定会搞坏格式,所以得走「读→改→写」的流程,我用Python给你写个实际能用的例子(毕竟做聊天机器人Python是主流):

具体步骤:

  • 先检查JSON文件是否存在,第一次运行的话就初始化一个空字典
  • 读取现有内容解析成Python字典
  • 自动生成新的键名(比如现有quote4,新的就是quote5)
  • 把新语录加进去,再写回文件(加个缩进让文件好看点)

代码示例:

import json
import os

def add_new_quote(new_quote_content):
    quote_file_path = "quotes.json"
    
    # 初始化或读取现有语录
    if not os.path.exists(quote_file_path):
        quotes_dict = {}
    else:
        with open(quote_file_path, 'r', encoding='utf-8') as f:
            quotes_dict = json.load(f)
    
    # 生成下一个quote的键名
    next_quote_id = len(quotes_dict) + 1
    new_key = f"quote{next_quote_id}"
    
    # 添加新语录
    quotes_dict[new_key] = new_quote_content
    
    # 写回文件,缩进4格方便查看
    with open(quote_file_path, 'w', encoding='utf-8') as f:
        json.dump(quotes_dict, f, indent=4)

# 测试一下,加一条新语录
add_new_quote("Talk is cheap. Show me the code.")

二、获取JSON文件里的语录条数

这个超简单,把JSON解析成字典后,直接用len()函数就能拿到键值对的数量,也就是语录的条数:

代码示例:

import json
import os

def get_total_quotes():
    quote_file_path = "quotes.json"
    # 文件不存在的话就是0条
    if not os.path.exists(quote_file_path):
        return 0
    with open(quote_file_path, 'r', encoding='utf-8') as f:
        quotes_dict = json.load(f)
    return len(quotes_dict)

# 看看当前有多少条
print(f"现在一共有 {get_total_quotes()} 条语录")

几个小建议

  • 编码一定要指定utf-8,不然存中文语录容易乱码
  • 如果你的机器人后期可能有多人同时加语录的情况,要注意文件写入冲突(小项目暂时不用管,真遇到了可以加个文件锁)
  • 其实当前的quote1这种键名结构有点冗余,换成数组[{"content":"xxx"}, {"content":"xxx"}]的话,后期要加作者、时间这类字段会更灵活,不过如果只是单纯存语录,当前结构完全够用~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:29:31