我在玩一个python脚本来拉、解析和格式化Twitter trend JSON。特定于位置的格式将趋势嵌套在数组中:
[
{
"created_at": "2010-07-15T22:31:11Z",
"trends": [
{
"name": "trendy",
"url": "http://search.twitter.com/search?q=trendy",
"query": "trendy"
}, ...
而每日和每周json格式不:
^{pr2}$我用这个python列出了趋势:
class trend:
#initialize a "trend" object with foo = trend(query,name ...)
def __init__(self, query, name, promoted_content, events, url):
self.query = query
self.name = name
self.promoted_content = promoted_content
self.events = events
self.url = url
class trending:
def __init__(self,api_url,title):
self.api_url = api_url
self.title = title
def get_trending(self):
import simplejson as json
import urllib2
trends_all = json.loads(urllib2.urlopen(self.api_url).read())
return trends_all
def list_trending(self):
trends_all = self.get_trending()
print "%s\n" % self.title
for x in trends_all[0]['trends']:
thistrend = trend(x['query'], x['name'], x['promoted_content'], x['events'], x['url'])
print "\t %s (%s) %s" %(thistrend.name, thistrend.url, thistrend.promoted_content)
这适用于位置格式(第一种),但不适用于每日/每周格式。所以我想知道是否有一个聪明的方法来区分这两个JSON结构并重新构造它们,这样我就可以同时使用它们。在
更一般的情况是有列表的情况。 因为您只需要第一个元素,所以如果解析的对象是一个列表,则提取第一个值。在
在代码中,可以简单地替换:
与
^{pr2}$相关问题 更多 >
编程相关推荐