django读取动态csv文件错误

时间:2018-04-03 18:35:58

标签: python django csv

我写了Django python csv阅读器,但它没有正常工作。我可以看到该文件已上传到系统,但我无法阅读,而且我收到以下错误:

Exception Type: AttributeError 
Exception Value:     'str' object has no attribute 'read'
data = csv.reader(open('tmp/tmp.csv'), delimiter=";")

当我静态使用时,它正在工作,但我需要通过文件上传接收的动态信号。我需要你的帮助,因为我没有办法解决这个问题。 我知道decode_file,io_string和数据变量无法正常工作但无法修复它们。

def upload_csv(request):
    if request.method == 'POST' and request.FILES['csv_file']:
        myfile = request.FILES['csv_file']
        fs = FileSystemStorage()
        filename = fs.save(myfile.name, myfile)

        decoded_file = filename.read().decode('utf-8')
        io_string = io.StringIO(decoded_file)
        data = csv.reader(io_string, delimiter=';', quotechar='|')
        for row in data:
            if row[0] != 'FP_Item':
               post = FP()
               post.FP_Item = row[0]
               post.save()

CSV文件:不多,因为仍然是导入试验,只有2行。有;在最后但我删除并重试仍然相同

5.Item try
Try

1 个答案:

答案 0 :(得分:1)

您尝试在csv.reader中读取字符串。你在upload_csv中改变你的代码:

$conf=[
  'scheme'=>'tcp',
  'host'=>'127.0.0.1',
  'port'=>'6379'
];
$client = new Predis\Client($conf);
$client->hmset('metavars', 'foo', 'bar', 'hoge', 'piyo', 'lol', 'wut');