如何将csv文件导入Django项目?

2024-03-29 09:52:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法将csv文件导入到我的Django项目中。在

我有一个已经开始工作的代码,它基本上接受一个csv文件并输出不同类别的开销(使用pandas)。我现在正在学习Django,我正试图在我的项目中包含这些代码。但每次我试着跑进去的时候都会说'No module named StatementOCTRev'。在

我不确定是目录还是pandasXdjango的东西。在

我试过不同的方法,但都不管用。这导致了一个丑陋的代码。所以我道歉。不管怎样,这是我的视图.py公司名称:

from django.shortcuts import render, get_object_or_404
from .models import Post
from .budget import Categorize, Spending
import numpy as np
import pandas as pd
import csv
import mysite.StatementOCTRev
from import_export import resources
#import
# Create your views here.
def home(request):
    posts = Post.objects
    return render(request, 'mysite/home.html', {'posts':posts})

def post(request,post_id):

    ################################

    coffeelist = ["WING", "COSTA", "CAFFEINE", "PASSO", "LA FELICE", "GULLUOGLU", "CARIBOU", "ARK COFFEE"]
    restlist = ["TALABAT", "SOLO", "MELENZANE", "PIZZA", "HARDEES", "HARDEE'S", "MCDONALDS", "GULF ROYAL", "SARAY", "Carriage"]
    gaslist = ["KNPC", "OULA", "ALFA"]

    read = pd.read_csv('StatementOCTRev.csv', encoding="ISO-8859-1")  # Read CSV

    # create a new dataframe
    df = pd.DataFrame(columns=["Date", "Reference", "Debit", "Credit", "Balance"])

    df['Date'] = read.iloc[:, 0]
    df['Reference'] = read.iloc[:, 1]
    df['Debit'] = read.iloc[:, 2]
    df['Credit'] = read.iloc[:, 3]
    df['Balance'] = read.iloc[:, 4]
    df['Category'] = 'Misc.'

    for name in df.Debit:
        if name < 0:
            df.loc[df.Debit == name, 'Debit'] = name * -1

    df.Reference = [str(x).replace(str(x), str(x).upper()) for x in df.Reference]
    df.Reference = [x.strip().replace('POS', '') for x in df.Reference]
    df.Reference = [x.strip().replace('UTAP', '') for x in df.Reference]
    df.Reference = [x.strip().replace('@', '') for x in df.Reference]
    df.Reference = [x.strip().replace('-', '') for x in df.Reference]
    df.Reference = [x.strip().replace('_', '') for x in df.Reference]


    # ------------------------ Coffee

    Categorize(coffeelist, "Coffee")
    SpentOnCoffee = Spending("Coffee")

    # ------------------------ Restaurant

    Categorize(restlist, "Restaurant")
    SpentOnRest = Spending("Restaurant")

    # ------------------------ Gas

    Categorize(gaslist, "Gas")
    SpentOnGas = Spending("Gas")

    Other = 1296 - SpentOnRest - SpentOnCoffee - SpentOnGas

    coffeecategorized = Categorize(coffeelist, "Coffee")
    coffeespending = Spending("Coffee")


    post = get_object_or_404(Post, pk=post_id)
    return render(request, 'mysite/post.html', {'post':post})

注意:您可以看到,我并没有告诉post函数返回与该文件相关的任何内容,这是因为我实际上不能再进一步了。我当然想。但我只想让代码先读取csv文件。在

而且,models.py与这个csv文件没有任何关联(它只有一个Post类,因为app只是一个我用来练习Django的博客。)


Tags: 文件csvinimportdfforreadpost