【问题标题】:Filter return results printed in text file python过滤器返回结果打印在文本文件python中
【发布时间】:2014-11-19 12:13:44
【问题描述】:

使用此代码:

from pysnap import Snapchat
from pprint import pprint

s = Snapchat()

username = raw_input('Enter your username: ')
password = raw_input('Enter your password: ')
s.login(username, password)
friends = s.get_friends()

newfile = open("newfile.txt", "a")
pprint(friends, newfile)

它打印 get_friends() 的返回/结果 太好了,几乎正是我想要的。

但是。

结果是这样的:

{u'can_see_custom_stories': True,
  u'direction': u'OUTGOING',
  u'display': u'',
  u'name': u'a7twini', #a7twini being the username here
  u'type': 0},

我希望它显示的唯一内容是:

a7twini
<nextusername>
<nextusername>
etc..

有没有办法“过滤”这些结果? 确保只有名称出现在文本文件中?

希望有人能帮帮我,谢谢!

编辑:有人要求 get_friends() 函数

def get_friends(self):
    """Get friends
    Returns a list of friends.
    """
    return self.get_updates().get('friends', [])

【问题讨论】:

  • 你能显示get_friends()函数吗?
  • 查看我的编辑,谢谢!
  • 你能在你的代码中printfriends 也显示出来吗?谢谢
  • 如果我只是打印它,它会以字符串的形式出现,我不希望这样。用户名需要用换行符分隔
  • DanielGibbs 的回答成功了!感谢您的帮助:)

标签: python list return pprint


【解决方案1】:

您可以为每个朋友打印name 条目。假设friends 是一个列表:

for friend in friends:
    newfile.write(friend[u'name'] + "\n")

或者您可以使用列表推导:

newfile.writelines([friend[u'name'] + "\n" for friend in friends])

【讨论】:

  • 好友是一个函数
  • 不是你的问题,它不是:get_friends 是一个函数,friends 是你存储结果的地方。
  • 我明白了,你能解释一下朋友中的“朋友”是什么意思吗?
  • 对于列表friends 中的每个元素,它将其存储在局部变量friend 中。然后它将那个朋友的名字写入文件。在 wiki.python.org/moin/ForLoop 阅读更多关于 for 循环的信息。
  • 如果答案有帮助,您介意单击旁边的勾号将其标记为已接受吗?
猜你喜欢
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-24
相关资源
最近更新 更多