我有这样的字典......
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 \n
替换回车<br>
。
这是我得到的错误:
错误:'tuple'对象没有属性'replace'
这是我正在努力工作的代码......如果有人可以提供帮助,我将非常感激。
for items in mydict['rows']:
i += 1
newitems = items.replace("\n", "<br>")
mydict['rows'][i] = newitems
答案 0 :(得分:2)
您可以使用以下代码将'\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']]}
答案 1 :(得分:1)
问题是replace
是字符串上的一个方法,你想在每个字符串上调用它,但是现在你在集合本身上调用它。您真的想在items
中的每个字符串上调用替换,您可以使用list comprehension
for items in mydict['rows']:
mydict['rows'][i] = [item.replace("\n","<br>") for item in items]
i += 1
您也可以使用另一个for循环而不是列表理解来完成此操作,但理解很酷且值得了解。
答案 2 :(得分:0)
您可以使用嵌套列表推导进行替换。
// This will save state.
@ Override
onSaveInstanceState(Bundle bun){
super.onSaveInstanceState(bun);
bun.putInt("pos",currentImage);
}
//To restore state
@Override
OnRestoreInstaneState(Bundle bun){
currentImage = bun.getInt("pos");
// set current image as pos in adapter
}
答案 3 :(得分:-2)
说items
是一个元组。
尝试:
print(type(items))
因为我用脚本得到的错误是:
AttributeError:&#39; list&#39;对象没有属性&#39;替换&#39;
然后尝试打印items
。