我从网站上获得如下数据:
{
...
u'rows':[
[
u'mail@example.com',
u'74'
],
[
u'mail2@example.com',
u'1'
],
[
u'mail3@example.com',
u'1'
],
...
],
我只展示了我需要的数据。如何将其转换为json,如:
{u'mail@example.com': 74, u'mail2@example.com': 1, u'mail3@example.com': 1, ...}
我可以逐个阅读元素:
if response.get('rows'):
total = 0
for row in response.get('rows'):
total += int(row[1])
logging.info(row[0]+": "+row[1])
但不确定接下来应该做些什么。不要以为我应该只生成字符串。
答案 0 :(得分:2)
您需要创建一个dict并使用行的内容填充它:
d = {}
for row in response.get('rows'):
d[row[0]] = row[1]
然后,如果你想要一个json字符串表示:
json.dumps(d)
答案 1 :(得分:0)
像这样:
>>> first_json = { 'rows':[['mail@example.com', '74'],['mail2@example.com','1'],['mail3@example.com','1']]}
>>> second_json = {item[0]: item[1] for item in first_json['rows']}
>>> second_json
{'mail@example.com': '74', 'mail2@example.com': '1', 'mail3@example.com': '1'}
>>>
您必须使用json
将上述数据字符串加载为loads()
。 first_json
假定它可以作为json对象使用。然后在计算second_json
之后,使用dumps()
second_json
获取输出json
修改强>
看起来您正在计算特定电子邮件的总电子邮件数。在这种情况下,我会使用defaultdict
。
from collections import defaultdict
second_json = defaultdict(int)
for item in first_json['rows']:
second_json[item[0]] += int(item[1])
然后按照上面的说明打印second_json
。
答案 2 :(得分:0)
bbb = {}
aaa = {
u'rows':[
[
u'mail@example.com',
u'74'
],
[
u'mail2@example.com',
u'1'
],
[
u'mail3@example.com',
u'1'
],
],
}
for item in aaa['rows']:
bbb[item[0]] = item[1]
print bbb
>>> {u'mail@example.com': u'74', u'mail2@example.com': u'1', u'mail3@example.com': u'1'}