我正在尝试使用
等数据进行情绪分析source_text - > @LiesbethHBC我有一种很好的感觉,实际上ðŸ™不长,很快就会出现!\ n你应该得到这些票吗? 然后! DY” -
result_value - > 情绪(极性= 0.0,主观性= 0.0)
我想将这个键值对存储在python词典中。
我尝试创建一个:
dict={}
dict[source_text].append(result_value)
但我得KeyError
有没有办法在字典中存储这样的文本(只是不是字符)?
答案 0 :(得分:0)
您的问题与"非字符文字"无关。 (实际上并不代表任何东西),对象可用作字典键的唯一要求是它可以清洗,并且对于可以用作值的内容绝对没有限制。
你的问题很简单,因为你正试图获得一个不存在的密钥的价值(KeyError
意味着什么:你要求的密钥不存在于字典)。
这里:
mydict = {}
此时,mydict
为空,因此任何商品访问都会引发KeyError
然后你这样做了:
dict[source_text].append(result_value)
基本上是:
something = mydict[source_text] # get value for key `source_text`
something.append(result_value)
由于你的dict是空的,第一行显然会引发KeyError
。
如果您想为每个result_value
值存储一个唯一的source_text
,那么正确的语法是:
mydict[source_text] = result_value
如果要为每个result_value
值存储source_text
列表,则必须明确测试密钥是否已设置,如果未设置为空列表,则附加到此列表:
if source_text not in mydict:
mydict[source_text] = []
mydict[source_text].append(result_value)
或仅使用DefaultDict
代替:
from collections import DefaultDict
mydict = DefaultDict(list)
# DefaultDict will automagically create the key with an empty list
# as value if the key is missing
mydict[source_text].append(result_value)
现在我强烈建议您花一些时间来正确学习Python(提示:官方文档中有相当不错的教程)如果你必须使用它,这将节省每个人的时间。
答案 1 :(得分:0)
问题是,当你试图拔出字典中的密钥@LiesbethHBC I have a good feeling actually 🙈 its not that long, it's pretty soon!\nAw you deserve these tickets then! 💖
时,在这种情况下不存在,Python给你一个KeyError
意味着密钥不存在于词典。解决这个问题的一个简单方法是首先检查字典中是否有特定的键,如果是的话,做你想做的任何事情,否则先创建那个键。
顺便说一句,避免使用dict
(字典数据类型)或任何其他数据类型作为变量名。
这是你应该做的事情:
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] = []
这应该有帮助...
答案 2 :(得分:-1)
您是否尝试使用'.update'方法?
dict = {}
dict.update({'First':'Test'})
dict.update({'Lets Get':'Real'})
print (dict)
输出:
{'Testing': 'Dictionaries', 'Lets Get': 'Real'}
编辑: 甚至:
dict = {}
dict.update({'Polarity':0.91})
dict.update({'Subjectivity':0.73})
print (dict)
输出:
{'Polarity': 0.8, 'Subjectivity': 0.73}