当前位置: 首页 > 知识库问答 >
问题:

Python-CSV到判决-密钥[重复]中的Unicode字符

慕俊语
2023-03-14

我实现了下面的csv to dict方法:

def csv_to_dict(path):
    res = {}
    with open(path, newline='') as csv_file:
        reader = csv.DictReader(csv_file)
        for row in reader:
            for key, value in row.items():
                if key in res:
                    res[key].append(value)
                else:
                    res[key] = [value]

    return res

此方法可以按需要工作,但如果我接受以下输入,则会出现问题。csv

Lfd. Nr.,Parameter 1,Parameter 2
1,2,3
1,2,3

上述功能的输出在MAc OS上:

{'\ufeffLfd. Nr.': ['1', '1'], 'Parameter 1': ['2','2'], 'Parameter 2' : ...

在Windows上,我得到以下输出:

{"u00efu00bbu00bfLfd. Nr.": ['1', '1'], 'Parameter 1': ['2','2'], 'Parameter 2' : ...

如何在第一个键中摆脱这些字符?为什么会有这些?

期望输出:

{'Lfd. Nr.': ['1', '1'], 'Parameter 1': ['2','2'], 'Parameter 2' : ...

更新我的csv文件以utf-8编码。

我也尝试过(没有成功):

with open(path, newline='', encoding='utf-8') as csv_file:

基于SO问题标记链接的解决方案

with open(path,"r", newline='',encoding='utf-8-sig') as csv_file

共有1个答案

王才英
2023-03-14

在函数内部循环的res[key]中使用时,写入str(key)来代替key变量

 类似资料:
  • 我有点困惑的一块python的代码在使用dict: 如何理解“{c:i代表枚举中的i,c}”?谁能给我解释一下吗?

  • 我一直在寻找将键绑定附加到JButton的答案,但仍然没有成功。我有以下由两个类组成的简单程序。我尝试了几种方法使用getInputMap()和getActionMap(),但都没有成功。我希望它执行以下操作:当我按键盘上的键“1”时,它会按JButton btn1,当我按键“2”时,它会按JButton btn2(因此JLabel上会出现1或2)。 //类1:// 更新:(我还没有15岁的名声,

  • 我正在使用Python 2.7.12。通过这个代码片段,我保存了一个utf-8CSV文件。我在文件的开头写下了BOM(字节顺序标记)。 我想加载csv文件: 上面的代码将失败:如果我打印行键,它们的外观就是这样:。BOM表已嵌入到键中。我做错了什么?

  • 问题内容: 有没有办法用python向json添加重复键? 据我了解,python词典中不能有重复的键。通常,创建json的方法是先创建字典,然后再创建。但是,我需要在JSON中使用重复的键进行测试。但是我不能这样做,因为我不能在python字典中添加重复的键。我正在尝试在python 3中做到这一点 问题答案: 您总是可以手动构造这样的字符串值。 另一方面,可以使 C* Python 模块对重复

  • 如何判断字符串是否在重复,如果是,最短的重复子序列是多少?

  • 问题内容: 因此,当尝试向字段添加自动增量时,它会出现#1062-键1的重复条目‘1’。我尝试删除主键并重新添加它,效果很好(我认为如果有重复项,那不会吗?) 但是,当我尝试向字段添加自动增量时,会引发错误。它为我提供了一个浏览选项,该选项运行以下SQL: 但是,这将返回一个空结果集。表明没有重复项。因此,如果没有重复项,为什么不能添加自动增量? 问题答案: 您是否有任何具有值的行或该列的行?可能