python json csv 파일 쓰기 실현
import json
import csv
json_str = '[{"a":1,"b":"2","c":"3","d":{"d1":"4"}},{"a":21,"c":"23","d":{"d1":"24"},"e":"25"}]'
o = json.loads(json_str)
def loop_data(o, k=''):
global json_ob, c_line
if isinstance(o, dict):
for key, value in o.items():
if(k==''):
loop_data(value, key)
else:
loop_data(value, k + '.' + key)
elif isinstance(o, list):
for ov in o:
loop_data(ov, k)
else:
if not k in json_ob:
json_ob[k]={}
json_ob[k][c_line]=o
def get_title_rows(json_ob):
title = []
row_num = 0
rows=[]
for key in json_ob:
title.append(key)
v = json_ob[key]
if len(v)>row_num:
row_num = len(v)
continue
for i in range(row_num):
row = {}
for k in json_ob:
v = json_ob[k]
if i in v.keys():
row[k]=v[i]
else:
row[k] = ''
rows.append(row)
return title, rows
def write_csv(title, rows, csv_file_name):
with open(csv_file_name, 'w') as csv_file:
writer = csv.DictWriter(csv_file, fieldnames=title)
writer.writeheader()
writer.writerows(rows)
def json_to_csv(object_list):
global json_ob, c_line
json_ob = {}
c_line = 0
for ov in object_list :
loop_data(ov)
c_line += 1
title, rows = get_title_rows(json_ob)
write_csv(title, rows, 'test.csv')
json_to_csv(o)
직접 코드
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.