Python 2.7 ERROR: 'tuple' object has no attribute 'replace'
Python 2.7 ERROR: 'tuple' object has no attribute 'replace'
我有一本这样的字典...
mydict = {"rows": [["col1", "col2", "col3"], ["testing data 1", "testing data 2lk\nIdrjy9dyj", "testing data 3"], ["testing data 2", "testing data 3", "testing data 4"], ["testing data 3", "testing data 4", "testing data 5"]],
"columns": ["col1", "col2", "col3"]}
我正在尝试用 html <br>
替换马车 return \n
。
这是我得到的错误:
ERROR: 'tuple' object has no attribute 'replace'
这是我正在尝试运行的代码...如果有人能提供帮助,我将不胜感激。
for items in mydict['rows']:
i += 1
newitems = items.replace("\n", "<br>")
mydict['rows'][i] = newitems
您可以使用以下代码将字符串中的 '\n'
替换为 '<br>'
for index, sublist in enumerate(mydict['rows']):
mydict['rows'][index] = [s.replace('\n', '<br>') for s in sublist]
结果
>>> mydict
{'columns': ['col1', 'col2', 'col3'],
'rows': [['col1', 'col2', 'col3'], ['testing data 1', 'testing data 2lk<br>Idrjy9dyj', 'testing data 3'], ['testing data 2', 'testing data 3', 'testing data 4'], ['testing data 3', 'testing data 4', 'testing data 5']]}
说 items
是一个元组。
尝试:
print(type(items))
因为我在脚本中遇到的错误是:
AttributeError: 'list' object has no attribute 'replace'
并尝试打印 items
。
问题是 replace
是一个字符串方法,您想在每个字符串上调用它,但现在您是在集合本身上调用它。您真的想对 items
中的每个单独的字符串调用替换,您可以使用 list comprehension
for items in mydict['rows']:
mydict['rows'][i] = [item.replace("\n","<br>") for item in items]
i += 1
您也可以使用另一个 for 循环而不是列表理解来执行此操作,但是理解很酷并且值得了解。
您可以使用嵌套列表理解进行替换。
mydict["rows"] = [[item.replace("\n", "<br>") for item in row]
for row in mydict["rows"]]
>>> mydict["rows"]
[['col1', 'col2', 'col3'],
['testing data 1', 'testing data 2lk<br>Idrjy9dyj', 'testing data 3'],
['testing data 2', 'testing data 3', 'testing data 4'],
['testing data 3', 'testing data 4', 'testing data 5']]
我有一本这样的字典...
mydict = {"rows": [["col1", "col2", "col3"], ["testing data 1", "testing data 2lk\nIdrjy9dyj", "testing data 3"], ["testing data 2", "testing data 3", "testing data 4"], ["testing data 3", "testing data 4", "testing data 5"]],
"columns": ["col1", "col2", "col3"]}
我正在尝试用 html <br>
替换马车 return \n
。
这是我得到的错误:
ERROR: 'tuple' object has no attribute 'replace'
这是我正在尝试运行的代码...如果有人能提供帮助,我将不胜感激。
for items in mydict['rows']:
i += 1
newitems = items.replace("\n", "<br>")
mydict['rows'][i] = newitems
您可以使用以下代码将字符串中的 '\n'
替换为 '<br>'
for index, sublist in enumerate(mydict['rows']):
mydict['rows'][index] = [s.replace('\n', '<br>') for s in sublist]
结果
>>> mydict
{'columns': ['col1', 'col2', 'col3'],
'rows': [['col1', 'col2', 'col3'], ['testing data 1', 'testing data 2lk<br>Idrjy9dyj', 'testing data 3'], ['testing data 2', 'testing data 3', 'testing data 4'], ['testing data 3', 'testing data 4', 'testing data 5']]}
说 items
是一个元组。
尝试:
print(type(items))
因为我在脚本中遇到的错误是:
AttributeError: 'list' object has no attribute 'replace'
并尝试打印 items
。
问题是 replace
是一个字符串方法,您想在每个字符串上调用它,但现在您是在集合本身上调用它。您真的想对 items
中的每个单独的字符串调用替换,您可以使用 list comprehension
for items in mydict['rows']:
mydict['rows'][i] = [item.replace("\n","<br>") for item in items]
i += 1
您也可以使用另一个 for 循环而不是列表理解来执行此操作,但是理解很酷并且值得了解。
您可以使用嵌套列表理解进行替换。
mydict["rows"] = [[item.replace("\n", "<br>") for item in row]
for row in mydict["rows"]]
>>> mydict["rows"]
[['col1', 'col2', 'col3'],
['testing data 1', 'testing data 2lk<br>Idrjy9dyj', 'testing data 3'],
['testing data 2', 'testing data 3', 'testing data 4'],
['testing data 3', 'testing data 4', 'testing data 5']]