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']]