json非常新,所以如果我在这里使用错误的条款,请原谅。我尝试使用更新的Twitter信息每x分钟创建一个json文件的任何方法。现在我知道我可以使用twitter api并抓住我需要的东西,但我想要搞砸一下。我的问题是获得一个新的密钥/字典?或者为for语句中添加的每个新项目调用它。
我想要的是什么
[
{
"name": "thename",
"date": "thedate",
"text": "thetext"
}, <--- trying to get that little comma
{
"name": "thename",
"date": "thedate",
"text": "thetext"
}
]
现在我得到了我想要的数据,但不是那个逗号。它会输出所有内容但不应该像那个使它有效的小字符一样。
[
{
"name": "thename",
"date": "thedate",
"text": "thetext"
} <--- I get this instead for each new object
{
"name": "thename",
"date": "thedate",
"text": "thetext"
}
]
这里只是代码片段,其余部分应该是解释性的,因为它只是Twitter oauth的东西。
for player in users:
statuses = api.GetUserTimeline(screen_name=player, count=10)
print "["
for s in statuses:
print json.dumps('timestamp': s.created_at,'username': s.user.name,'status': s.text)
print "]"
还有更好的方法在开始和结束时做[],因为我知道这是丑陋的,并且我认为XD不合适。就像我在json / python上说新手一样,但它是一个很好的学习经历。
答案 0 :(得分:2)
您应该让JSON编码器为您自己构建JSON数组,而不是尝试自己构建JSON数组。为此,您只需将对象列表传递给json.dumps
即可。因此,不是单独打印每个JSON对象,只需在列表中收集它们,然后转储:
allstatuses = []
for player in users:
statuses = api.GetUserTimeline(screen_name=player, count=10)
for s in statuses:
allstatuses.append({'timestamp': s.created_at, 'username': s.user.name, 'status': s.text})
print(json.dumps(allstatuses))