我有一个字典,里面充满了我需要同时遍历的各种列表。目的是创建一个由逗号分隔的值组成的字符串作为列,但我只是不太正确。
到目前为止,我最接近的是:
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'
如您所见,我最终将转换为一长列数据,而不是将每个列表本质上都添加到同一行中。如何获得该值,以便在添加换行符之前从每个键取一个值?
我当前的输出在上面。如您所见,我从时间和开放开始,它们是历史数据字典中的列表。然后,我试图找到一种将两个列表“压缩”在一起的方法,以便在移至第二个项目之前先取每个列表的第一个值。
我不确定“ zip”是否是正确的术语,或者如果我需要从字典中拉出每个字典列表来开始。
最终的目标是利用一个笨拙的“ file_writer”对象,该对象需要一个布局完美的文本字符串。
有一种比我目前正在做的更好的方法。
感谢您的帮助!