我正在使用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天的时间寻找答案并尝试我发现的一切)。