Note that there are some explanatory texts on larger screens.

plurals
  1. POsimplejson.loads usage
    text
    copied!<p>I want to display a random link + its name from an RSS feed. The code I use is:</p> <pre><code>def updateFeed(url): query_args = { 'q': 'http://news.google.com/?output=rss', 'v':'1.0', 'num': '15', 'output': 'json' } qs = urllib.urlencode(query_args) loader = 'http://ajax.googleapis.com/ajax/services/feed/load' loadurl = '%s?%s' % (loader, qs) logging.info(loadurl) result = urlfetch.fetch(url=loadurl, headers={'Referer': '...'}) if result.status_code == 200: news = simplejson.loads(result.content) </code></pre> <p>I do get response data in JSON but I don't know how to randomly select an item. Can you please advice?</p> <pre><code>{u'responseData': {u'feed': {u'feedUrl': u'http://news.google.com/?output=rss', u'description': u'Google News', u'author': u'', u'title': u'Top Stories - Google News', u'link': u'http://news.google.com/news?pz=1&amp;amp;jfkl=true&amp;amp;ned=us&amp;amp;hl=en', u'entries': [{u'publishedDate': u'Tue, 02 Aug 2011 08:51:09 -0700', u'title': u'House Approved Debt Bill Faces Final Hurdle - NY1', u'author': u'', u'content': u'&lt;table border="0" cellpadding="2" cellspacing="7" style="vertical-align:top"&gt;&lt;tr&gt;&lt;td width="80" align="center" valign="top"&gt;&lt;font style="font-size:85%;font-family:arial,sans-serif"&gt;&lt;a href="http://news.google.com/news/url?sa=t&amp;amp;fd=R&amp;amp;usg=AFQjCNEyXr4E-W9lA8bsV4_Zslubxd-6_g&amp;amp;url=http://www.theglobeandmail.com/news/world/americas/little-sign-of-compromise-ahead-of-us-default-deadline/article2114420/"&gt;&lt;img src="http://nt3.ggpht.com/news/tbn/dyFy2sz6rKRlJM/6.jpg" alt="" border="1" width="80" height="80"&gt;&lt;br&gt;&lt;font size="-2"&gt;Globe and Mail&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;font style="font-size:85%;font-family:arial,sans-serif"&gt;&lt;br&gt;&lt;div style="padding-top:0.8em"&gt;&lt;img alt="" height="1" width="1"&gt;&lt;/div&gt;&lt;div&gt;&lt;a </code></pre> <p>Edit: It works now almost perfect and I learn about JSON doing this:</p> <pre><code>def updateFeed(url): query_args = { 'q': 'http://news.google.com/?output=rss', 'v':'1.0', 'num': '15', 'output': 'json' } qs = urllib.urlencode(query_args) loader = 'http://ajax.googleapis.com/ajax/services/feed/load' loadurl = '%s?%s' % (loader, qs) logging.info(loadurl) result = urlfetch.fetch(url=loadurl,headers={'Referer': '...'}) if result.status_code == 200: news = simplejson.loads(result.content) """ not working, using random.randrange instead some_key = random.choice(news.keys()) something = news[some_key] """ i = random.randrange(0,10)#to do: instead of 10, it should be number of entries title = news[u'responseData'][u'feed'][u'entries'][i][u'title'] link = news[u'responseData'][u'feed'][u'entries'][i][u'link'] return mark_safe('&lt;a href="%s"&gt;%s&lt;/a&gt;' % (link, title)) </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload