我有以下字典......
mydict = {'columns': ['col1', 'col2', 'col3'],
'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']]}
我正在使用以下列表理解来将回车"\n"
替换为此"<br>"
。它工作正常,除非它在读取json文件时传递一个空字符串。然后它抛出错误'NoneType' object has no attribute 'replace'
。我只是不知道如何在列表理解中添加if is not none
语句。任何帮助非常感谢..
for items in mydict['rows']:
mydict['rows'][i] = [item.replace("\n","<br>") for item in items]
i += 1
答案 0 :(得分:2)
你可以在这里使用一个布尔表达式:
[item and item.replace("\n","<br>") for item in items]
如果item.replace()
被视为真,则仅调用item
; None
和空字符串都被视为false。
如果你想过滤掉任何None
项,你可以在列表理解中添加一个测试:
[item.replace("\n","<br>") for item in items if item is not None]
删除None
值或
[item.replace("\n","<br>") for item in items if item]
仅保留非空值。