首页 > 解决方案 > 使用字典python从不同路径导入csv

问题描述

我正在尝试从不同的路径导入 CSV,该路径指示带有字典的指定路径。

import csv
import os
import pandas as pd

PATH = Path("../../Toxic-comment-classification")
PATH.mkdir(exist_ok=True)

args = {
    "data_dir": PATH,
}

class MultiLabelTextProcessor(DataProcessor):

    def __init__(self, data_dir):
        self.data_dir = data_dir
        self.labels = None


    def get_train_examples(self, data_dir, size=-1):
        filename = 'train.csv'
        data_df = pd.read_csv(os.path.join(data_dir, filename))
        return(data_df)

a = MultiLabelTextProcessor(args.values())
print(a.get_train_examples(a.data_dir))

但是,当我尝试运行时出现以下错误:

TypeError:预期的 str、字节或 os.PathLike 对象,而不是 dict_values

我了解 args.values() 给了我一个 dict_object。我怎样才能将我的字典中的值作为字符串?

标签: python

解决方案


显然,您使用的是 Python 3.args.values()并没有给您一个 dict 对象,而是一个dict_values,它在 Python 2 中的等价物是一个列表。但是,在您的情况下, list/dict_values 只有一项,即args.values() == [PATH](某种)

我敢打赌,您希望这args是一个只有一个条目的字典,因此您想提取该PATH内容。你可以简单地做list(args.values())[0]它。或者,我认为更好的方法是使用args['data_dir']

os.path.join(data_dir, filename)使用data_dirlist 或 dict_values 类型和filenamestring 类型会导致您的代码出现问题。


推荐阅读