Django-在脚本中使用熊猫时,“ / form /“ text”中的'KeyError'

时间:2019-12-01 01:18:34

标签: python django python-3.x pandas

我正在使用Django和Pandas构建一个简单的Web应用程序高音情感分析,到目前为止,Django构建按预期方式运行,但是当我尝试从HTML中获取POST词以在情感分析脚本中运行时,我得到了指向脚本和数据框列“文本”的错误消息。

我的view.py:

from django.shortcuts import render
from . import script

def form(request):

    searchword = request.POST.get('Searchword')

    submitbutton = request.POST.get('Submit')

    if searchword:
        searchword = script.main(searchword)

    context = {'searchword': searchword,
               'submitbutton': submitbutton, }

    return render(request, 'blog/form.html', context)

POST可以正常运行,即使脚本中有函数,我也可以收集输入并使用它,但是如果我引用数据框列,则出现错误,调试器指向:

return self._engine.get_loc(key)

script.py:

def create_ref(testDataSet):
    # Turns JSON into DataFrame
    df = pd.DataFrame(testDataSet)
    ref = pd.DataFrame()
    ref = df.copy()
    ref = ref.drop('label', axis=1)

    ref['original'] = ref['text'].copy()
    ref['text'] = clean_tweet(df['text'])
    ref['sentiment'] = ''
    ref['feel'] = ''

    for item in range(len(ref['text'])):
        ap = ref['text'][item]
        analysis = TextBlob(ap)
        ref['sentiment'][item] = analysis.sentiment.polarity
        if analysis.sentiment.polarity > 0:
            ref['feel'][item] = 'positive'
        elif analysis.sentiment.polarity == 0:
            ref['feel'][item] = 'neutral'
        else:
            ref['feel'][item] = 'negative'

    return ref


def main(searchword='ostriches'):
    # Authenticating Twitter tokens
    twitter_api = twitter.Api(consumer_key='',
                              consumer_secret='',
                              access_token_key='',
                              access_token_secret='')

    # Testing code
    search_term = searchword
    testDataSet = buildSet(search_term)

    ref = create_ref(testDataSet)

    search_term += 'tes1'
    search_term += '123'

    return search_term

该错误始终发生在“文本”列名称中。我已经尝试在虚拟环境中升级熊猫,但没有结果。

如果我删除第一个函数,脚本将按预期工作。

我正在使用Python 3.7.3和Django 2.2.7

我是否缺少使Pandas与Django一起正常工作的东西?我是Django甚至Python的新手,不确定经过如此大量的研究后是否能清楚地理解这个问题(已经花了将近3天的时间寻找答案并尝试我发现的一切)。

0 个答案:

没有答案