У меня есть полный список различных списков, которые мне нужно перебирать одновременно.Намерение состоит в том, чтобы создать строку, полную значений, разделенных запятыми, в виде столбцов, но я просто не могу понять, как это правильно.
Самое близкое, что у меня есть, это:
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", который требует идеально уложенногоСтрока текста.
Должен быть способ лучше, чем то, что я сейчас делаю.
Спасибо за вашу помощь!