代码之家  ›  专栏  ›  技术社区  ›  Mal229

Python与字典内的对象有关吗?无法恢复所有数据

  •  -2
  • Mal229  · 技术社区  · 7 年前

    主要的 .提交“我为什么要拿回这个?

    该职位的目标:

    1: 为什么我得到< 主要的

      File "C:/automation/git/tensorflow/untitled0.py", line 35, in <module>
        submissions[sm.id].addSubSubmission(Submission.addComment(cmt.id, cmt.author.name, cmt.body))
    
    TypeError: addComment() missing 1 required positional argument: 'body'
    

    谢谢 科迪

    error and data back

    import praw
    
    # sets log in data for session
    reddit = praw.Reddit(client_id='bY',
                         client_secret='v9',
                         user_agent='android:com.example.myredditapp:'
                         'v1.2.3 (by /u/r)')
    
    class Submission(object):
        def __init__(self, id, title, author):
            self.id = id
            self.title = title
            self.subSubmission = {}
            self.author = author
    
        def addComment(self, id, author, body):
            self.id = id
            self.author = author
            self.body = body
    
        def addSubSubmission(self,submission):
            self.subSubmission[submission,id] = submission
    
        def getSubSubmission(self,id):
            return self.subSubmission[id]
    
    submissions = {}
    for sm in reddit.subreddit('redditdev').hot(limit=2):
        # pulls the ID and makes that the head of each
        submissions[sm.id] = Submission(sm.id, sm.title, sm.author.name)
        mySubmission = reddit.submission(id=sm.id)
        mySubmission.comments.replace_more(limit=0)
        # Get all the comments and first post and list their id author and body(comment)
        for cmt in mySubmission.comments.list():
            submissions[sm.id].addSubSubmission(Submission.addComment(cmt.id, cmt.author.name, cmt.body))
    
    # My trying to read what all there??!? ##
    
    for key in submissions.keys():
        value = submissions[key]
        print(key, "=", value)
    
    for key, value in submissions.items():
        print(key, "=", value)
    

    期待看到:

    {Title = test {comment.id = 1111 {Comment = 'blah', Author = 'Bob'}}
                       {comment.id = 1112 {Comment = 'blah2', Author = 'Bob2'}}
    } 
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Danielle M.    7 年前

    它会将整个提交对象返回给你,但你要打印它。打印时提交对象在屏幕上的外观如何?这是您可以在Submission类中定义的内容-查看本文中的第一个答案: Difference between __str__ and __repr__ in Python

    __repr__ 函数,python将调用它并打印该函数返回的任何内容。