0
index = 0
manage = {}
filedata = open(custom_path,'r')
for status in filedata:
    manage[index] = status
    print manage[index]
    index += 1

上述 print manage[index] 的输出是正确的,显示:

yes

yes

yes

yes

yes

然后,我添加了一个新行:manage = str(u'\n,'.join(manage))

并得到以下错误:

TypeError: sequence item 0: expected string, int found

将我的代码更改为:

values = ','.join(str(status) for status in manage)

print values

并得到以下输出(这是错误的):

0,1,2,3,4

我期待:是的,是的,是的,是的,是的

知道我哪里出错了吗?

4

3 回答 3

1

您正在迭代字典中的键而不是值。

尝试更改此行:

values = ','.join(str(status) for status in manage)

对此:

values = ','.join(val.rstrip("\n") for val in manage.values())

这也是您收到该错误的原因,因为您尝试使用您的密钥。

于 2012-12-26T02:36:40.473 回答
1

这是因为manage 是一个字典而不是一个列表,定义在

manage = {}
于 2012-12-26T02:36:55.047 回答
1

manage是具有整数键的字典。for 循环遍历字典键。将其更改为:','.join(line.strip() for line in manage.values())

于 2012-12-26T02:37:08.163 回答