You need to enable JavaScript to run this app. 如何读取文件前N行,将每行"键","值"格式内容存储为Python字典且不使用JSON?
优惠活动
大模型
产品
解决方案
定价
更多

如何读取文件前N行,将每行"键","值"格式内容存储为Python字典且不使用JSON?

原代码核心问题
  • 缩进不统一,with语句行和后续逻辑行的空格缩进不一致,运行时会直接触发缩进报错
  • 读取文件得到的每一行自带末尾换行符,直接拆分后存储的键值会附带隐形换行,和预期内容不匹配
  • 每行内容是带包裹双引号的格式,比如实际行内容为"a b c", "3"\n,直接按逗号拆分得到的片段分别是"a b c"、 "3"\n,没有去除首尾的引号、前导空格和换行残留,存入字典的键值全是带多余字符的无效内容
  • 无限制拆分字符串,若键内容本身包含逗号,会直接抛出解包失败的错误
修正后的实现代码
def exam():
    a_dictionary = {}
    with open("questions.txt", encoding="utf-8") as myfile:
        # 保持原逻辑读取前3行,提前剔除每行末尾的换行符
        head = [next(myfile).rstrip("\n") for _ in range(3)]
        print(head)

        for line in head:
            # 仅按第一个逗号分割,避免内容内带逗号导致解包错误
            raw_key, raw_value = line.split(",", maxsplit=1)
            # 去除首尾空格、包裹用的双引号,得到纯净的键与值
            key = raw_key.strip().strip('"')
            value = raw_value.strip().strip('"')
            a_dictionary[key] = value

    print(a_dictionary)


exam()
运行效果说明

修正后可正确处理全部3行内容,最终生成的字典完全符合要求:比如文件内3行内容分别为"a b c", "3"、"hello world", "10"、"test entry", "22",最终输出的字典结构为{"a b c": "3", "hello world": "10", "test entry": "22"}`,全程未使用JSON相关处理逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.14 00:39:07