Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在python中的字典中存储非字符文本_Python_Sentiment Analysis - Fatal编程技术网

无法在python中的字典中存储非字符文本

无法在python中的字典中存储非字符文本,python,sentiment-analysis,Python,Sentiment Analysis,我正在尝试情绪分析,我有如下数据 source_text->@LiesbethHBC实际上我有一种很好的感觉™没那么长,很快就到了\你配得上这些票吗 然后ðŸ'- 结果_值->极性=0.0,主观性=0.0 我想将这个键值对存储在python字典中 我尝试将其创建为: dict={} dict[source_text].append(result_value) 但我有一个错误 有没有办法在字典中存储这样的文本而不是字符?您尝试过使用“.update”方法吗 dict = {} dict.upd

我正在尝试情绪分析,我有如下数据

source_text->@LiesbethHBC实际上我有一种很好的感觉™没那么长,很快就到了\你配得上这些票吗 然后ðŸ'-

结果_值->极性=0.0,主观性=0.0

我想将这个键值对存储在python字典中

我尝试将其创建为:

dict={}

dict[source_text].append(result_value)
但我有一个错误
有没有办法在字典中存储这样的文本而不是字符?

您尝试过使用“.update”方法吗

dict = {}
dict.update({'First':'Test'})
dict.update({'Lets Get':'Real'})
print (dict)
输出:

{'Testing': 'Dictionaries', 'Lets Get': 'Real'}
{'Polarity': 0.8, 'Subjectivity': 0.73}
编辑: 甚至:

输出:

{'Testing': 'Dictionaries', 'Lets Get': 'Real'}
{'Polarity': 0.8, 'Subjectivity': 0.73}

您的问题与非字符文本无关,而非字符文本实际上并不意味着任何东西。要将对象用作dict键,唯一的要求是它是可散列的,并且对可以用作值的内容没有任何限制

您的问题很简单,因为您试图获取一个不远处的键的值,这就是KeyError的意思:您请求的键在dict中不存在

在这里:

mydict = {}
此时,mydict为空,因此任何项访问都将引发一个KeyError

那么你要做的是:

dict[source_text].append(result_value)
基本上是:

something = mydict[source_text] # get value for key `source_text`
something.append(result_value)
由于您的dict是空的,第一行显然会引发一个keyrerror

如果要为每个源文本值存储一个唯一的结果值,则正确的语法为:

mydict[source_text] = result_value
如果要为每个源文本值存储结果值列表,则必须明确测试是否设置了键,如果未使用空列表设置键,则必须附加到此列表:

if source_text not in mydict:
    mydict[source_text] = []
mydict[source_text].append(result_value)
或者只使用DefaultDict:


现在我强烈建议您花一些时间正确学习Python提示:官方文档中有一个相当不错的教程,如果您必须使用它,这将节省每个人的时间。

问题是,当您尝试拔出@liesbethbc键时,我实际上感觉很好™没那么长,很快就到了\不,那么这些票是你应得的!💗—在本例中不存在的字典中,Python给了您一个keyrerror,表示字典中不存在该键。解决这个问题的一个简单方法是,首先检查字典中是否有特定的键,如果有,就用它做任何你想做的事情,否则先创建该键

顺便说一下,避免使用dict dictionary数据类型或任何其他数据类型作为变量名

这是您实际应该做的:

dictionary = {}  # Since, 'dict' is the dictionary data-type in Python

if (source_text in dictionary):
    # If the key exists...
    dictionary[source_text].append(result_value)

else:
    # If the key does not exist...
    dictionary[source_text] = []

这将有助于…

dict[key]=item是您正在查找的语法,也不要将dict用作变量名。在dict中设置键的标准方法是mydict[key]=value。只有当您希望同时设置多个键时,dict.update才有用,因此使用单个key:value对执行两个连续的更新调用是一个完整的WTF。作为补充说明,如果您的密钥是有效的python标识符,那么您不必构建另一个dict,您可以使用mydict.updatekey1=val1,key2=val2。但无论如何,这些都不能解决OP的问题-他因为试图获取尚未设置的键的值而得到一个键错误。谢谢你的帮助explanation@SushmitaMitkar如果我能帮上忙,我会很高兴的。如果答案能解决你的问题,我会接受的。