如何使用for循环从嵌套数据中获取相应的统计信息

时间:2015-07-29 06:22:10

标签: python

我在python中有这些数据:

{
    u'stats': [
        u'Jul 23, 2015',
        u'Jul 24, 2015',
        u'Jul 25, 2015',
        u'Jul 26, 2015'
    ],
    u'tickers_data': [
        {u'amount': [936, 804, 977, 954], u'name': u'adv'}
    ]
}

预期输出为:将所有日期和相应的金额值存储到数据库中。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

获取日期:

data["stats"]

获取金额:

data["tickers_data"][0]["amount"]

一旦有了这两个列表,就可以使用zip function将两个列表组合成可以迭代的元素对:

data = {
    u'stats': [
        u'Jul 23, 2015',
        u'Jul 24, 2015',
        u'Jul 25, 2015',
        u'Jul 26, 2015'
    ],
    u'tickers_data': [
        {u'amount': [936, 804, 977, 954], u'name': u'adv'}
    ]
}                                                                    
days = data['stats']
ticker = data['tickers_data'][0]['amount']

for day, amount in zip(days, ticker):
    print(day, "->", amount)

输出:

$ python3 x.py
Jul 23, 2015 -> 936
Jul 24, 2015 -> 804
Jul 25, 2015 -> 977
Jul 26, 2015 -> 954

如果这不是您的意思,您需要在问题中提供更多详细信息,说明您要尝试做什么以及您希望最终结果如何。您还应尝试对您尝试执行的操作进行初步尝试,并在问题中发布该代码。

答案 1 :(得分:0)

您可以使用以下内容显示它:

data_dict = {
    u'stats': [
        u'Jul 23, 2015',
        u'Jul 24, 2015',
        u'Jul 25, 2015',
        u'Jul 26, 2015'
    ],
    u'tickers_data': [
        {u'amount': [936, 804, 977, 954], u'name': u'adv'}
    ]
}

print "Ticker name '%s':" % data_dict[u'tickers_data'][0][u'name']

dates = data_dict[u'stats']
amounts = data_dict['tickers_data'][0][u'amount']

for date, amount in zip(dates,amounts):
    print "  Date: %s, Amount: %s" % (date, amount)

这给出了以下输出:

Ticker name 'adv':
  Date: Jul 23, 2015, Amount: 936
  Date: Jul 24, 2015, Amount: 804
  Date: Jul 25, 2015, Amount: 977
  Date: Jul 26, 2015, Amount: 954

如果要将数据存储在文件中,可以添加以下内容:

with open("ticker_data.txt", "w") as f_output:
    f_output.write("Ticker name '%s':\n" % data_dict[u'tickers_data'][0][u'name'])

    for date, amount in zip(dates,amounts):
        f_output.write("  Date: %s, Amount: %s\n" % (date, amount))

使用Python 2.7进行测试