Python转到生成器中的特定迭代

时间:2015-08-21 01:38:01

标签: python generator

我正在寻找一种导航到生成器对象中特定迭代的方法。

我有一个生成器对象,它通过一个JSON对象列表。我没有一次加载所有这些,而是​​创建了一个生成器,以便每个JSON对象仅在每次迭代时加载。

def read_data(file_name):
    with open(file_name) as data_file:
        for user in data_file:
            yield json.loads(user)

但是,现在我正在寻找一些方法来导航到第n次迭代以检索该用户的更多数据。我能想到这样做的唯一方法是迭代生成器并停止第n次枚举:

n = 3
data = read_data(file_name)
for num, user in enumerate(data):
    if num == n:
        <retrieve more data>

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

这应该这样做:

$(document).ready(function () {
   chart = $.plot($("#placeholder"), data, options);

   $('#modal').on('shown.bs.modal', function () {
      $('#myInput').focus();

      var dataSet = [   
        ["Tiger Nixon", "System Architect", "Edinburg", "5421","2011/04/25", "$320,800"]
      ];

      $('#table').dataTable( {
        "destroy": true,
        //"ajax": "data/objects.txt",
        "sScrollY": "210px",
        "sScrollYInner": "100%",
        "sScrollX": "100%",
        "sScrollXInner": "100%",
        "scrollCollapse": true,
        "url": "/echo/json/",
        "data":dataSet            
      });          
   });
});

这是众多useful utilities included in the itertools documentation中的一个。