我是 python 新手,有一个问题:
我检查过类似的问题,检查了教程深入Python,检查了 python 文档、googlebinging、类似的 Stack Overflow 问题和十几个其他教程。
我有一段 Python 代码,用于读取包含 20 条推文的文本文件。我可以使用以下代码提取这 20 条推文:
with open ('output.txt') as fp:
for line in iter(fp.readline,''):
Tweets=json.loads(line)
data.append(Tweets.get('text'))
i=0
while i < len(data):
print data[i]
i=i+1
上面的 while 循环完美地迭代并打印出 20 条推文(行)output.txt
。
然而,这 20 行包含非英语字符数据,例如"Los ladillo a los dos, soy maaaala o maloooooooooooo"
, 网址如"http://t.co/57LdpK"
, 字符串"None"
和具有类似 URL 的照片"Photo: http://t.co/kxpaaaaa
(出于隐私考虑,我对此进行了编辑)
我想清除这个的输出(这是一个list
),并排除以下内容:
- The
None
entries
- 以字符串开头的任何内容
"Photo:"
- 如果我可以排除非 unicode 数据,那就太好了
我尝试过以下代码
- Using
data.remove("None:")
但我得到了错误list.remove(x): x not in list.
- 将我不想要的项目读入一组,然后对输出进行比较,但没有运气。
- 研究列表理解,但想知道我是否在这里寻找正确的解决方案。
我有 Oracle 背景,那里有一些函数可以删除任何想要/不需要的输出部分,所以在过去的 2 个小时里,我真的在这方面绕了一圈。非常感谢任何帮助!
尝试这样的事情:
def legit(string):
if (string.startswith("Photo:") or "None" in string):
return False
else:
return True
whatyouwant = [x for x in data if legit(x)]
我不确定这是否适用于您的数据,但您明白了。如果你不熟悉的话[x for x in data if legit(x)]
称为列表理解
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)