Frage

Ich habe eine Liste von Objekten, die unter anderen Daten-Bits, ein Datum enthalten, und ich brauche eine Liste aller Objekte zu schaffen, in dem das Datum zu jeder Zeit im letzten Monat fällt, also Mitternacht am 1. im letzten Monat

Ich muss auch die Gesamtzahl der Objekte, die diese Kriterien erfüllen.

Im Moment werde ich über sie in einer Reihe von While-Schleifen, aber ich fühle mich wie es muss ein besserer Weg, zumal mein Skript hängt sein:

        post = 0 #the current post we're analyzing
        posts = 0 #the total number of posts in the month we actually care about
        lastmonthposts = [] #I think i can just get rid of this
        blog = pyblog.WordPress()

        date = blog.get_recent_posts(1 + posts)[0]['dateCreated']
        while (date > startthismonth):
            print "So far, there have been " + str(posts) + " posts this month we've counted."
            post = post + 1
            date = blog.get_recent_posts(1 + post)[0]['dateCreated']
        while (date > startlastmonth):
            print "So far, there have been " + str(posts) + " posts last month we've counted, which is " + str(date.timetuple().tm_mon) + "."
            posts = posts + 1
            post = post + 1
            date = blog.get_recent_posts(1 + post)[0]['dateCreated']
            lastmonthposts.append('blog')
        for blogpost in lastmonthposts:
            postnumber = blogpost['postid']
            comments = comments + int(blog.get_comment_count(postnumber)['approved'])
War es hilfreich?

Lösung

Statt get_recent_posts() würde ich get_page_list() verwenden:

from datetime import datetime, timedelta

this_month_start = datetime.now().date().replace(day=1)
prev_month_start = (this_month_start - timedelta(days=1)).replace(day=1)

pages = blog.get_page_list()
last_month_pages = [
  p for p in pages
  if prev_month_start <= p['dateCreated'] < this_month_start]
last_month_approved_comment_count = sum(
  blog.get_comment_count(page['page_id'])['approved']
  for page in last_month_pages)

print "number of last month's pages:", len(last_month_pages)
print "number of approved comments for last month's pages:",
print last_month_approved_comment_count
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top