JSON 과 CSV 의 전환
여러 JSON 요 소 를 배열 로 변환 한 다음 python csv 와 json 모듈 로 처리 합 니 다.
범례 형식:
[
{
"description": null,
"image": {
"image_size": 20,
"os_family": "centos",
"platform": "linux",
"image_name": "tomcat-V1.7- -V2",
"provider": "self",
"image_id": "xxxxxxxxx",
"processor_type": "64bit",
"ui_type": "tui"
},
"instance_name": " ",
"transition_status": "",
"sub_code": 0,
"lastest_snapshot_time": "",
"cpu_topology": "",
"memory_current": 4096,
"vxnets": [],
"status": "ceased",
"vcpus_current": 2,
"instance_id": "i-xxxxxx",
"instance_type": "c2m4",
"instance_class": 0,
"dns_aliases": [],
"create_time": "2015-03-17T02:06:57Z",
"owner": "xxxxxxxxxxxx",
"status_time": "2015-03-17T04:14:49Z",
"alarm_status": ""
}
]
사용 방법:
python json2csv.py /tmp/test.json /tmp/test.csv instance_id,instance_name,create_time,vcpus_current,memory_current,status,status_time image
처리 결 과 는 다음 과 같다.
i-xxxxxx,xxxxxx,2015-03-17T02:18:34Z,2,4096,ceased,2015-03-17T04:22:04Z,tui,64bit,xxxxxxxxxxxxxxxxxx,20,xxxxxxxx,linux,centos,self
직접 코드
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json
import csv
import fcntl
import time
import sys
reload(sys)
sys.setdefaultencoding('utf8')
#
f_read = open(sys.argv[1])
data = json.load(f_read)
f_read.close()
#
f_write=open(sys.argv[2],'wb+')
f=csv.writer(f_write)
#
fcntl.flock(f_write,fcntl.LOCK_EX)
#
del sys.argv[0]
del sys.argv[0]
del sys.argv[0]
# KEY
if len(sys.argv)>0:
m1=sys.argv[0].split(',')
del sys.argv[0]
else:
m1=[]
if len(sys.argv)>0:
m2=sys.argv[0].split(',')
del sys.argv[0]
else:
m2=[]
if len(sys.argv)>0:
m3=sys.argv[0].split(',')
del sys.argv[0]
else:
m3=[]
# KEY
all_keys=m1+m2+m3
#
#print ','.join(all_keys)
#f.writerow(all_keys)
#
for item in data:
x=[]
for z in all_keys:
if z in m1:
x+=[str(item[z]).encode('utf-8', 'ignore')]
if z in m2:
x+=item[z].values()
#print ','.join(x)
f.writerow(x)
fcntl.flock(f_write,fcntl.LOCK_UN)
f_write.close()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
콘텐츠 SaaS | JSON 스키마 양식 빌더Bloomreach Content를 위한 JSON Form Builder 맞춤형 통합을 개발합니다. 최근 Bloomreach Content SaaS는 내장 앱 프레임워크를 사용하여 혁신적인 콘텐츠 유형 필드를 구축할...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.