私はこのエラーを取得しました
File "/class.py", line 246, in __init__
if d and self.rf == 2 and d["descriptionType"] in ["900000000000003001"] and d["conceptId"] in konZer.zerrenda:
TypeError: 'Desk' object is not subscriptable
このオブジェクトを作成しました
class Desk:
descriptionId = ""
descriptionStatus = ""
conceptId = ""
term = ""
そして、私は別のクラスでそれを呼び出しました
class DescriptionList():
def deskJ(self,line):
er = line.strip().split('\t')
desc = Desk()
if er[1] == "0":
desc.descriptionId = er[0]
desc.descriptionStatus = er[1]
desc.conceptId = er[2]
desc.term = er[3]
return description
次にinitで関数「deskJ」を呼び出し、この部分でエラーが発生します(関数の一部を削除しました)。
def __init__(self,fitx,konZer,lanZer={}):
with codecs.open(fitx,encoding='utf-8') as fitx:
lines = fitx.read().split('\n')[1:-1]
for line in lines:
d = self.deskJ(line)
if d and self.rf == 2 and d["descriptionType"] in ["900000000000003001"] and d["conceptId"] in konZer.zerrenda:
c = konZer.zerrenda[d["conceptId"]]
c["fullySpecifiedName"] = d["term"]
何が悪いのですか?
d["descriptionType"]
を使用すると、キー"descriptionType"
でd
にアクセスしようとしています。ただし、d
はキーを持たないDesk
オブジェクトなので、これは機能しません。代わりに、属性を取得します。
if d and self.rf == 2 and d.descriptionType in ["900000000000003001"] and d.conceptId in konZer.zerrenda: