Попытка перебрать несколько списков в пределах одного запроса - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть полный список различных списков, которые мне нужно перебирать одновременно.Намерение состоит в том, чтобы создать строку, полную значений, разделенных запятыми, в виде столбцов, но я просто не могу понять, как это правильно.

Самое близкое, что у меня есть, это:

    self.headers = ''
    self.body = ''
    self.headers_temp = ''
    self.body_temp = {}
    self.body_temp1 = {}
    self.body_temp2 = ''
    # comma separated headers
    for key in sorted(self.hist_data):
        self.headers_temp += ',' + key
        self.body_temp[key] = str(self.hist_data[key]).strip('[]')
    print'Headers Temp: ', self.headers_temp, '\n'
    print'Body Temp: ', self.body_temp, '\n'
    for key in self.body_temp:
        self.body_temp1[key] = self.body_temp[key].split(', ')
    print'Body Temp 1: ', self.body_temp1, '\n'
    for key in self.body_temp1:
        for string in self.body_temp1[key]:
            self.body_temp2 += ',\n' + str(string).strip('[]')       
    print'Body Temp 2: ', self.body_temp2, '\n'
    if self.headers == '':
        # dont include the leading ','
        self.headers = self.headers_temp[1:]
    if self.body == '':
        # dont include the leading ',\n'    
        self.body = self.body_temp2[2:]
    print'Headers: ', self.headers, '\n'
    print'Body: ', self.body, '\n'
    service.write_file('myTrades_'+ service.time_to_string(service.system_time, '%Y-%m-%d'), self.headers + '\n' + self.body, mode='overwrite')

Вывод:

Init has started...

Start has started... 2018-10-31 09:30:00.000000

Time:  ['2018-10-30 15:55', '2018-10-30 15:56', '2018-10-30 15:57', '2018-10-30 15:58', '2018-10-30 15:59'] 

Open:  [34.729999542236328, 34.654998779296875, 34.685001373291016, 34.679901123046875, 34.724998474121094] 

Headers Temp:  ,open,time 

Body Temp:  {'open': '34.729999542236328, 34.654998779296875, 34.685001373291016, 34.679901123046875, 34.724998474121094', 'time': "'2018-10-30 15:55', '2018-10-30 15:56', '2018-10-30 15:57', '2018-10-30 15:58', '2018-10-30 15:59'"} 

Body Temp 1:  {'open': ['34.729999542236328', '34.654998779296875', '34.685001373291016', '34.679901123046875', '34.724998474121094'], 'time': ["'2018-10-30 15:55'", "'2018-10-30 15:56'", "'2018-10-30 15:57'", "'2018-10-30 15:58'", "'2018-10-30 15:59'"]} 

Body Temp 2:  ,
34.729999542236328,
34.654998779296875,
34.685001373291016,
34.679901123046875,
34.724998474121094,
'2018-10-30 15:55',
'2018-10-30 15:56',
'2018-10-30 15:57',
'2018-10-30 15:58',
'2018-10-30 15:59' 

Headers:  open,time 

Body:  34.729999542236328,
34.654998779296875,
34.685001373291016,
34.679901123046875,
34.724998474121094,
'2018-10-30 15:55',
'2018-10-30 15:56',
'2018-10-30 15:57',
'2018-10-30 15:58',
'2018-10-30 15:59' 

Как вы видите, я получаю то, что выльется в один длинныйстолбец данных, вместо того, чтобы каждый список был добавлен в одну строку по существу.Как я могу получить это так, чтобы он принимал одно значение от каждого ключа, прежде чем добавить в мои разрывы строк?

Мой текущий вывод выше.Как вы можете видеть, я начинаю с Time и Open, которые являются списками в словаре исторических данных.Затем я пытаюсь найти способ «сжать» два списка вместе, чтобы я взял первое значение каждого списка перед переходом ко вторым элементам.

Я не уверен, что «zip» - этоправильный термин, или, может быть, для начала мне нужно будет вытащить каждый список словарей из словаря.

Конечная цель - использовать очень неуклюжий объект "file_writer", который требует идеально уложенногоСтрока текста.

Должен быть способ лучше, чем то, что я сейчас делаю.

Спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...