Python .join()函数返回int而不是str。出了什么问题?
上述打印管理[索引]的输出正确,显示:Python .join()函数返回int而不是str。出了什么问题?,python,join,typeerror,Python,Join,Typeerror,上述打印管理[索引]的输出正确,显示: index = 0 manage = {} filedata = open(custom_path,'r') for status in filedata: manage[index] = status print manage[index] index += 1 然后,我添加了一个新行: manage=str(u'\n',.join(manage)) 并得到以下错误: yes yes yes yes yes 将我的代码
index = 0
manage = {}
filedata = open(custom_path,'r')
for status in filedata:
manage[index] = status
print manage[index]
index += 1
然后,我添加了一个新行:
manage=str(u'\n',.join(manage))
并得到以下错误:
yes
yes
yes
yes
yes
将我的代码更改为:
TypeError: sequence item 0: expected string, int found
并得到以下输出(这是错误的):
我期待着:是的,是的,是的,是的
知道我哪里出错了吗?您正在迭代字典中的键,而不是值 尝试更改此行:
0,1,2,3,4
为此:
values = ','.join(str(status) for status in manage)
这也是为什么会出现错误的原因,因为您尝试使用键。您正在迭代字典中的键,而不是值 尝试更改此行:
0,1,2,3,4
为此:
values = ','.join(str(status) for status in manage)
这也是为什么会出现错误的原因,因为您尝试使用密钥。这是因为管理是一个dict而不是列表,如中所定义
values = ','.join(val.rstrip("\n") for val in manage.values())
这是因为manage是一个dict而不是列表,如中所定义
values = ','.join(val.rstrip("\n") for val in manage.values())
manage
是一个具有整数键的字典。for循环迭代字典键。将其更改为:,'.join(manage.values()中的line的line.strip())
manage
是一个具有整数键的字典。for循环迭代字典键。将其更改为:,'.join(manage.values()中的line的line.strip())
您可能指的是第二个循环中的manage.items()
。虽然未使用键,因此您可以使用manage.values()
仅获取字典值。manage=','。join(str(val)表示状态,manage.values()中的val)返回以下错误:ValueError:要输入的值太多unpack@TingPing当你更改代码时出错,你得到了这个?请看一下其他答案。您的意思可能是第二个循环中的manage.items()
。虽然未使用键,因此您可以使用manage.values()
仅获取字典值。manage=','。join(str(val)表示状态,manage.values()中的val)返回以下错误:ValueError:要输入的值太多unpack@TingPing当你更改代码时出错,你得到了这个?再看看其他答案。