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

如何用Python从CSV文件生成两个格式规范的字典?

Python CSV行转键值对字典解决方案

问题分析

你的需求是处理包含两行交替键值的CSV文件,每行数据格式为键, 值, 键, 值...,需要将每行转换为严格格式的字典。之前遇到的问题包括:

  • 冗余空格未处理
  • DictReader不适用(无表头结构)
  • 手动split()处理格式出错

解决方案代码

import csv

def csv_to_dicts(filename):
    with open(filename, 'r') as f:
        # 使用csv.reader并开启skipinitialspace去除逗号后的空格
        reader = csv.reader(f, skipinitialspace=True)
        for row in reader:
            # 按两两分组,取偶数索引为键,奇数索引为值
            key_value_pairs = zip(row[::2], row[1::2])
            result_dict = dict(key_value_pairs)
            # 直接打印字典,匹配要求的格式
            print(result_dict)

# 调用示例(替换为你的CSV文件名)
csv_to_dicts('your_file.csv')

代码说明

  1. 空格处理:csv.reader的skipinitialspace=True参数会自动忽略每个字段开头的空格,解决了原数据中 a, 100这类带前导空格的问题。
  2. 键值分组:通过列表切片row[::2]获取所有偶数位置的元素(键),row[1::2]获取所有奇数位置的元素(值),再用zip()配对后转成字典。
  3. 格式匹配:直接打印字典对象,其输出格式完全符合你要求的{'键': '值', ...}样式,无需手动拼接字符串。

测试验证

针对你提供的输入文件内容:

a, 100, b, 200, c, 300
bananas, 1.85, steak, 19.99, cookies, 4.52

运行代码后将输出:

{'a': '100', 'b': '200', 'c': '300'}
{'bananas': '1.85', 'steak': '19.99', 'cookies': '4.52'}

完全匹配指定格式要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 19:17:11