【问题标题】:"Error: line contains NULL byte" in Python DictReaderPython DictReader 中的“错误:行包含 NULL 字节”
【发布时间】:2020-09-18 17:26:25
【问题描述】:

在尝试读取 CSV 列并将其转换为 Python 中的字典列表时,我收到以下错误“错误:行包含 NULL 字节”。

我关注了list contains NULL byte, CSV DictReader,但这似乎不适用于我编写的代码。

import pandas as pd
import csv
from collections import defaultdict

columns = defaultdict(list) 

with open('file.csv') as f:
    reader = csv.DictReader(f) 
    for row in reader: 
        for (k,v) in row.items(): 
            columns[k].append(v) 
                                 

keywords = print(columns['Keyword'])

任何帮助将不胜感激!谢谢。

【问题讨论】:

    标签: python csv


    【解决方案1】:

    您看到的问题是空行/单元格。您提到的链接将 '\0' 替换为虚拟字符串 ''

    “file.csv”中是否还有其他导致此错误的内容?你能先检查一下它的内容吗?我相信你得到的错误需要用虚拟字符串替换一些其他有问题的字符串''

    更简单的方法是打印所有唯一字符并检查您是否有问题字符串,例如 '\0'、'\0\0'、'\0,\0' 等

    如果您只想将列转换为列表,您可以试试这个:

    df = pd.read_csv("file.csv")
    df["Keyord"].tolist()
    

    【讨论】:

    • 是的,我正在阅读的 CSV 有多个行和列。我有的脚本,我只想要“关键字”列的内容,然后将其转换为列表。
    • 如果是这样,你可以试试 df = pd.read_csv("file.csv") 和 df['Keyword"].tolist()
    • 谢谢,现在读取文件时出现“UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte”错误。
    • 您拥有的文件的编码似乎不同。看到这个stackoverflow.com/questions/33819557/…
    猜你喜欢
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    相关资源
    最近更新 更多