代码之家  ›  专栏  ›  技术社区  ›  Shahin Ghannadian

在python3中导入utf-8 csv。x-特殊德语字符

  •  -1
  • Shahin Ghannadian  · 技术社区  · 6 年前

    我一直在尝试导入包含特殊字符(·)的csv文件

    在python 2中。x自动编码的所有特殊字符,无需指定 经济编码 属性。

    我想不出该怎么做 python 3。x个

    import csv
    
    f = open('sample_1.csv', 'rU', encoding='utf-8')
    csv_f = csv.reader(f, delimiter=';')
    
    bla = list(csv_f)
    print(type(bla))
    
    print(bla[0])
    print(bla[1])
    print(bla[2])
    print()
    print(bla[3])
    

    控制台输出 (升华建造蟒蛇3)

    <class 'list'>
    ['\ufeffCat1', 'SEO Meta Text']
    ['Damen', 'Damen----']
    ['Damen', 'Damen-Accessoires-Beauty-Geschenk-Sets-']
    
    Traceback (most recent call last):
      File "/Users/xxx/importer_tree.py", line 13, in <module>
        print(bla[3])
    UnicodeEncodeError: 'ascii' codec can't encode character '\xf6' in position 37: ordinal not in range(128)
    

    输入sample\u 1。csv (excel文件另存为utf-8 csv)

    Cat1;SEO Meta Text
    Damen;Damen----
    Damen;Damen-Accessoires-Beauty-Geschenk-Sets-
    Damen;Damen-Accessoires-Beauty-Körperpflege-
    Männer;Männer-Sport-Sportschuhe-Trekkingsandalen-
    Männer;Männer-Sport-Sportschuhe-Wanderschuhe-
    Männer;Männer-Sport-Sportschuhe--
    
    1. 这只是一个输出格式问题,还是我也要导入数据 错了吗?
    2. 如何打印“MÃnner”?

    感谢您的帮助/指导!

    1 回复  |  直到 6 年前
        1
  •  0
  •   Shahin Ghannadian    6 年前

    感谢您 juanpa-arrivillaga 对于这个答案: https://stackoverflow.com/a/44088439/9059135

    问题是由于我的Sublime设置: sys.stdout.encoding 退货 US-ASCII

    在终端中,返回相同的命令 UTF-8

    设置 Build system in Sublime 妥善解决问题