小编Med*_*yon的帖子

Python-偶然发现“'DictReader'对象不可下标”

我不知道此错误是由什么引起的,或者如何解决。

基本上,我想要实现的是从.csv文件中读取内容,并根据其中的信息制作字典。我以前做过没有任何问题,但是这次确实很奇怪。

#Read External Data
DataNames = os.listdir("Data")

#Import Classes
ClassesPath = os.path.join("Data", DataNames[1])
Classes = open(ClassesPath)
global ClassesDict
ClassesDict = csv.DictReader(Classes, delimiter=",")
Run Code Online (Sandbox Code Playgroud)

尝试跑步时

print(ClassesDict)
Run Code Online (Sandbox Code Playgroud)

要么

print(ClassesDict["ID"])
Run Code Online (Sandbox Code Playgroud)

它总是给我错误:

TypeError: 'DictReader' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)

我确实知道列表,字典等是可下标的对象,但是我的变量“ ClassesDict” (或应该是)字典。

提前非常感谢您。

python dictionary

4
推荐指数
1
解决办法
4404
查看次数

变量不想定义?

我有一个小问题,其中变量似乎没有被正确定义为变量.当我尝试print变量的值时WordLetters,它不会返回任何内容.当我尝试print变量的长度时,它返回0.

最初,我有一个NameError在方面WordLetters的变量,然后我外面定义的try:功能,现在它没有返回值.可能是它try:有自己的范围吗?如果是这样,我将如何将值附加到WordLetters列表中?

RandomWord = random.choice(Words)
try:
  WordLetters = [RandomWord[0], RandomWord[1], RandomWord[2], RandomWord[3], RandomWord[4], RandomWord[5], RandomWord[6], RandomWord[7], RandomWord[8], RandomWord[9]]
except(IndexError):
  pass

print("Word: " + "".join(WordLetters))
print("The word is " + str(len(WordLetters)) +  " letters long.")
Run Code Online (Sandbox Code Playgroud)

python variables list global-variables python-3.x

-3
推荐指数
1
解决办法
60
查看次数