차입
How do I write a Python dictionary to a csv file?에서 당신은 중첩 된 DICT 구조를 가지고있다. 아마 다음은 도움이 될 것입니다
import csv
my_dict = {
'20140311': {
'1030': {
'total_price': 9421626, 'end': 6.76, 'high': 6.85, 'start': 6.78, 'low': 6.67, 'volumn': 1396431
},
'1130': {
'total_price': 5042807, 'end': 6.86, 'high': 6.91, 'start': 6.76, 'low': 6.76, 'volumn': 735220
},
'1400': {
'total_price': 5410292, 'end': 6.79, 'high': 6.9, 'start': 6.88, 'low': 6.76, 'volumn': 792890
},
'1500': {
'total_price': 6470290, 'end': 6.83, 'high': 6.85, 'start': 6.79, 'low': 6.74, 'volumn': 954111
}
}
}
def initialize_keys():
for dict1 in my_dict.itervalues():
for dict2 in dict1.itervalues():
return dict2.keys()
with open('mycsvfile.csv', 'wb') as f:
w = csv.DictWriter(f, initialize_keys())
w.writeheader()
for dict1 in my_dict.itervalues():
for dict2 in dict1.itervalues():
w.writerow(dict2)
당신이 보조 사전 키를 사용하여 원하는 작업 모른다는합니다 (1030
, 1130
, 1400
및 1500
)하지만 내 방법은 그들을 무시합니다.
total_price,end,high,start,low,volumn
9421626,6.76,6.85,6.78,6.67,1396431
5042807,6.86,6.91,6.76,6.76,735220
5410292,6.79,6.9,6.88,6.76,792890
6470290,6.83,6.85,6.79,6.74,954111
파이썬에서 csv 모듈을 살펴보십시오 :
이
은
mycsvfile.csv
의 내용이다. 아마 당신에게 더 많은 아이디어를 줄 것입니다. PER OP의 발언 AS
가
UPDATE : 상기 제 사전 열쇠 날짜 및 제 사전 키 이후
때때로는 datetime.datetime
인스턴스를 통해 인스턴스 후 CSV에 기록 될 수있다 파일 :
datetime,total_price,end,high,start,low,volumn
2014/03/11 10:30,9421626,6.76,6.85,6.78,6.67,1396431
2014/03/11 11:30,5042807,6.86,6.91,6.76,6.76,735220
2014/03/11 14:00,5410292,6.79,6.9,6.88,6.76,792890
2014/03/11 15:00,6470290,6.83,6.85,6.79,6.74,954111
:
import csv
import datetime
my_dict = {
'20140311': {
'1030': {
'total_price': 9421626, 'end': 6.76, 'high': 6.85, 'start': 6.78, 'low': 6.67, 'volumn': 1396431
},
'1130': {
'total_price': 5042807, 'end': 6.86, 'high': 6.91, 'start': 6.76, 'low': 6.76, 'volumn': 735220
},
'1400': {
'total_price': 5410292, 'end': 6.79, 'high': 6.9, 'start': 6.88, 'low': 6.76, 'volumn': 792890
},
'1500': {
'total_price': 6470290, 'end': 6.83, 'high': 6.85, 'start': 6.79, 'low': 6.74, 'volumn': 954111
}
}
}
def initialize_keys():
for dict1 in my_dict.itervalues():
for dict2 in dict1.itervalues():
return dict2.keys()
with open('mycsvfile.csv', 'wb') as f:
w = csv.DictWriter(f, ['datetime'] + initialize_keys())
w.writeheader()
for datestr, dict1 in my_dict.iteritems():
for timestr, dict2 in dict1.iteritems():
whole_row = {}
whole_row['datetime'] = datetime.datetime\
.strptime(datestr + timestr, '%Y%m%d%H%M')\
.strftime('%Y/%m/%d %H:%M')
whole_row.update(dict2)
w.writerow(whole_row)
이 다음과 같은 출력을 생성
1030, 1130, 1400 및 1500은 10 : 00,11 : 30,14 : 00 및 15:00을 나타냅니다. 이들은 특정한 시점입니다. 날짜를 추가 할 수 있습니까? 감사! – qifengwu
초기 질문에서 벗어나 귀하의 질문을 찾는 다른 사람들에게 혼동을 줄 수는 있지만 그럴 수 있습니다. – BorrajaX