TypeError: 'type' - Objekt ist nicht subscriptable, wenn mit einem Wörterbuch,
Ist hier ein Teil von meinem code :-
words_custom=[]
sentence_list=[]
pos_tags=[]
words_posscore={}
words_neg={}
words_pos={}
func_words=[]
def init():
global words_posscore
global words_neg
global words_pos
global func_words
words_posscore={}
with open('words_posscore.csv','r',encoding='utf-8') as f:
reader=csv.reader(f)
for row in reader:
print(type(row))
print(row)
words_posscore[row[0]]=float[row[1]]
with open('negative_words.csv','r',encoding='utf-8') as f:
reader=csv.reader(f)
for row in reader:
words_neg[row[0]]=1
words_pos={}
with open('positive_words.csv','r',encoding='utf-8') as f:
reader=csv.reader(f)
for row in reader:
words_pos[row[0]]=1
with open('Feature/func_words.csv','r',encoding='utf-8') as f:
reader=csv.reader(f)
for row in reader:
func_words.append(row[0])
Erhalte ich folgenden Fehler :-
Traceback (most recent call last):
File "train.py", line 586, in <module>
init()
File "train.py", line 120, in init
words_posscore[row[0]]=float[row[1]]
TypeError: 'type' object is not subscriptable
Ich bin zwar mit words_posscore wie ein Wörterbuch und-initialisiert habe es, ich weiß nicht, warum es ist, wenn man bedenkt es eine Art Objekt statt dict.
Habe ich schon gelesen, die Antworten auf die folgenden Fragen :-
TypeError: 'type' - Objekt ist nicht subscriptable bei der Indizierung in einem Wörterbuch
- sollte
float(row[1])
- Gut gemacht, wer downvoted alle (richtigen) Antworten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Allgemeine Hinweise:, wenn eine Zeile in der Form, die bewirkt, dass Sie Schwierigkeiten, brechen Sie in Stücke, um zu sehen, welches Stück code ist eigentlich das problem verursacht.
Dein problem ist es, weil Sie versuchen, zu verwenden schweben, das ist eine Art, wie ein Wörterbuch. Um es zu beheben, ändern Sie die Zeile:
Als für meine Beratung haben, können Sie erkennen, wenn Sie getrennt hatten, die Zeile in 2 Zeilen:
Könnten Sie bemerkt haben, Ihr misake Brei einfacher 🙂
Die Fehler kommen nicht von mit
words_posscore
als ein Wörterbuch, es kommt von der Verwendungfloat
als ein Wörterbuch. Natürlich, es ist ein geben, nicht ein dict.Du wohl gemeint:
Beachten Sie, dass Ihre
init
- Funktion funktioniert absolut nichts und sollte entfernt werden. Es ist auch nicht klar, warum Sie definierenwords_posscore
undwords_pos
zweimal.Fehler in Zeile :
words_posscore[row[0]]=float[row[1]]
sollte es sein:
versuchen:
float['123']
erhalten Sie die gleiche Fehlermeldung:bezüglich Ihrer Frage :
Die Fehlermeldung ist für die RHS (Right hand side) die Abtretung mitteilt und nicht dem LHS an
words_posscore[row[0]]=float[row[1]]
.Also python ist nicht bedenkt, dass es ein Typ-Objekt statt dict.
Hoffe, dass klärt es 🙂