문제

CSV 파일로 변환하려는 JSON 파일이 있습니다.Python으로 이 작업을 어떻게 수행할 수 있나요?

나는 시도했다:

import json
import csv

f = open('data.json')
data = json.load(f)
f.close()
f = open('data.csv')
csv_file = csv.writer(f)
for item in data:
    f.writerow(item)

f.close()

그러나 그것은 작동하지 않았습니다.나는 Django를 사용하고 있는데 내가 받은 오류는 다음과 같습니다:

file' object has no attribute 'writerow'

그래서 다음을 시도했습니다.

import json
import csv

f = open('data.json')
data = json.load(f)
f.close()

f = open('data.csv')
csv_file = csv.writer(f)
for item in data:
    csv_file.writerow(item)

f.close()

그런 다음 오류가 발생합니다.

sequence expected

샘플 JSON 파일:

[
  {
    "pk": 22,
    "model": "auth.permission",
    "fields": {
      "codename": "add_logentry",
      "name": "Can add log entry",
      "content_type": 8
    }
  },
  {
    "pk": 23,
    "model": "auth.permission",
    "fields": {
      "codename": "change_logentry",
      "name": "Can change log entry",
      "content_type": 8
    }
  },
  {
    "pk": 24,
    "model": "auth.permission",
    "fields": {
      "codename": "delete_logentry",
      "name": "Can delete log entry",
      "content_type": 8
    }
  },
  {
    "pk": 4,
    "model": "auth.permission",
    "fields": {
      "codename": "add_group",
      "name": "Can add group",
      "content_type": 2
    }
  },
  {
    "pk": 10,
    "model": "auth.permission",
    "fields": {
      "codename": "add_message",
      "name": "Can add message",
      "content_type": 4
    }
  }
]

올바른 솔루션이 없습니다

다른 팁

이 질문이 이미 해결되었는지 확실하지 않지만 참조를 위해 수행 한 작업을 붙여 넣으겠습니다.

첫째, JSON에는 객체가 중첩되었으므로 일반적으로 CSV로 직접 변환 할 수 없습니다. 이를 다음과 같은 것으로 변경해야합니다.

{
    "pk": 22,
    "model": "auth.permission",
    "codename": "add_logentry",
    "content_type": 8,
    "name": "Can add log entry"
},
......]

다음은 CSV를 생성하는 코드입니다.

import csv
import json

x = """[
    {
        "pk": 22,
        "model": "auth.permission",
        "fields": {
            "codename": "add_logentry",
            "name": "Can add log entry",
            "content_type": 8
        }
    },
    {
        "pk": 23,
        "model": "auth.permission",
        "fields": {
            "codename": "change_logentry",
            "name": "Can change log entry",
            "content_type": 8
        }
    },
    {
        "pk": 24,
        "model": "auth.permission",
        "fields": {
            "codename": "delete_logentry",
            "name": "Can delete log entry",
            "content_type": 8
        }
    }
]"""

x = json.loads(x)

f = csv.writer(open("test.csv", "wb+"))

# Write CSV Header, If you dont need that, remove this line
f.writerow(["pk", "model", "codename", "name", "content_type"])

for x in x:
    f.writerow([x["pk"],
                x["model"],
                x["fields"]["codename"],
                x["fields"]["name"],
                x["fields"]["content_type"]])

당신은 다음과 같이 출력됩니다.

pk,model,codename,name,content_type
22,auth.permission,add_logentry,Can add log entry,8
23,auth.permission,change_logentry,Can change log entry,8
24,auth.permission,delete_logentry,Can delete log entry,8

이랑 pandas 도서관, 이것은 두 명령을 사용하는 것만 큼 쉽습니다!

pandas.read_json()

JSON 문자열을 Pandas 객체 (시리즈 또는 데이터 프레임)로 변환합니다. 그런 다음 결과가 저장되었다고 가정합니다 df:

df.to_csv()

문자열을 반환하거나 CSV 파일에 직접 쓸 수 있습니다.

이전 답변의 진실성에 근거하여, 우리는 바로 가기에 대한 팬더에게 감사해야합니다.

귀하의 JSON 파일이 사전 목록으로 디코딩 할 것이라고 가정합니다. 먼저 JSON 객체를 평평하게하는 함수가 필요합니다.

def flattenjson( b, delim ):
    val = {}
    for i in b.keys():
        if isinstance( b[i], dict ):
            get = flattenjson( b[i], delim )
            for j in get.keys():
                val[ i + delim + j ] = get[j]
        else:
            val[i] = b[i]

    return val

JSON 개체 에서이 스 니펫을 실행 한 결과 :

flattenjson( {
    "pk": 22, 
    "model": "auth.permission", 
    "fields": {
      "codename": "add_message", 
      "name": "Can add message", 
      "content_type": 8
    }
  }, "__" )

~이다

{
    "pk": 22, 
    "model": "auth.permission', 
    "fields__codename": "add_message", 
    "fields__name": "Can add message", 
    "fields__content_type": 8
}

JSON 객체의 입력 배열 에서이 함수를 각 딕에 적용한 후 :

input = map( lambda x: flattenjson( x, "__" ), input )

관련 열 이름 찾기 :

columns = [ x for row in input for x in row.keys() ]
columns = list( set( columns ) )

CSV 모듈을 통해 이것을 실행하는 것은 어렵지 않습니다.

with open( fname, 'wb' ) as out_file:
    csv_w = csv.writer( out_file )
    csv_w.writerow( columns )

    for i_r in input:
        csv_w.writerow( map( lambda x: i_r.get( x, "" ), columns ) )

이게 도움이 되길 바란다!

JSON은 다양한 데이터 구조를 나타낼 수 있습니다. JS "객체"는 대략 Python Dict (String Keys 포함), JS "배열"과 비슷합니다. 잎 "요소는 숫자 또는 줄입니다.

CSV는 기본적으로 2 차원 테이블 만 나타낼 수 있습니다. 선택적으로 "헤더", 즉 "열 이름"의 첫 번째 행이있는 경우 테이블을 정상 해석 대신에 딘 목록으로 해석 할 수있는 "열 이름"이 있습니다. 목록 (다시, "잎"요소는 숫자 또는 문자열 일 수 있음).

따라서 일반적으로 임의의 JSON 구조를 CSV로 변환 할 수는 없습니다. 몇 가지 특별한 경우 (더 이상 중첩이없는 배열, 모두 동일한 키를 가진 객체 배열). 문제에 어떤 특별한 경우가 있습니까? 솔루션의 세부 사항은 귀하가 가지고있는 특별한 경우에 따라 다릅니다. 어떤 것이 적용되는지조차 언급하지 않는 놀라운 사실을 감안할 때, 제약 조건을 고려하지 않았을 수도 있고, 실제로는 적용되지 않으며, 문제를 해결하기가 불가능하다고 생각합니다. 그러나 명확히 해주세요!

JSON 목록을 번역하는 일반 솔루션 평평한 CSV에 개체.

input.json 파일을 명령 줄의 첫 번째 인수로 전달하십시오.

import csv, json, sys

input = open(sys.argv[1])
data = json.load(input)
input.close()

output = csv.writer(sys.stdout)

output.writerow(data[0].keys())  # header row

for row in data:
    output.writerow(row.values())

이 코드는 JSON 데이터가 호출되는 파일에 있다고 가정 할 때 귀하를 위해 작동해야합니다. data.json.

import json
import csv

with open("data.json") as file:
    data = json.load(file)

with open("data.csv", "w") as file:
    csv_file = csv.writer(file)
    for item in data:
        fields = list(item['fields'].values())
        csv_file.writerow([item['pk'], item['model']] + fields)

사용하기 쉽습니다 csv.DictWriter()세부 구현은 다음과 같습니다.

def read_json(filename):
    return json.loads(open(filename).read())
def write_csv(data,filename):
    with open(filename, 'w+') as outf:
        writer = csv.DictWriter(outf, data[0].keys())
        writer.writeheader()
        for row in data:
            writer.writerow(row)
# implement
write_csv(read_json('test.json'), 'output.csv')

이것은 모든 JSON 객체에 동일한 필드를 가지고 있다고 가정합니다.

여기에 있습니다 참조 도움이 될 수 있습니다.

나는 문제가 있었다 Dan의 제안 된 솔루션, 그러나 이것은 나를 위해 효과가있었습니다.

import json
import csv 

f = open('test.json')
data = json.load(f)
f.close()

f=csv.writer(open('test.csv','wb+'))

for item in data:
  f.writerow([item['pk'], item['model']] + item['fields'].values())

"test.json"은 다음을 포함합니다.

[ 
{"pk": 22, "model": "auth.permission", "fields": 
  {"codename": "add_logentry", "name": "Can add log entry", "content_type": 8 } }, 
{"pk": 23, "model": "auth.permission", "fields": 
  {"codename": "change_logentry", "name": "Can change log entry", "content_type": 8 } }, {"pk": 24, "model": "auth.permission", "fields": 
  {"codename": "delete_logentry", "name": "Can delete log entry", "content_type": 8 } }
]

이전 답변에서 언급했듯이 JSON을 CSV로 변환하는 데 어려움이있는 것은 JSON 파일에 중첩 된 사전을 포함 할 수 있기 때문에 다차원 데이터 구조가 될 수 있기 때문에 2D 데이터 구조 인 CSV입니다. 그러나 다차원 구조를 CSV로 전환하는 좋은 방법은 기본 키와 함께 여러 CSV를 갖는 것입니다.

예에서 첫 번째 CSV 출력에는 열이 열로 "PK", "Model", "필드"열이 있습니다. "PK"및 "Model"의 값은 쉽게 얻을 수 있지만 "필드"열에 사전이 포함되어 있기 때문에 자체 CSV 여야하며 "코드 이름"이 기본 키로 나타나기 때문에 입력으로 사용할 수 있습니다. "필드"가 첫 번째 CSV를 완료합니다. 두 번째 CSV에는 코드 이름이있는 "필드"열의 사전이 2 개의 CSV를 함께 묶는 데 사용할 수있는 기본 키로 포함되어 있습니다.

다음은 중첩 사전을 2 개의 CSV로 변환하는 JSON 파일의 솔루션입니다.

import csv
import json

def readAndWrite(inputFileName, primaryKey=""):
    input = open(inputFileName+".json")
    data = json.load(input)
    input.close()

    header = set()

    if primaryKey != "":
        outputFileName = inputFileName+"-"+primaryKey
        if inputFileName == "data":
            for i in data:
                for j in i["fields"].keys():
                    if j not in header:
                        header.add(j)
    else:
        outputFileName = inputFileName
        for i in data:
            for j in i.keys():
                if j not in header:
                    header.add(j)

    with open(outputFileName+".csv", 'wb') as output_file:
        fieldnames = list(header)
        writer = csv.DictWriter(output_file, fieldnames, delimiter=',', quotechar='"')
        writer.writeheader()
        for x in data:
            row_value = {}
            if primaryKey == "":
                for y in x.keys():
                    yValue = x.get(y)
                    if type(yValue) == int or type(yValue) == bool or type(yValue) == float or type(yValue) == list:
                        row_value[y] = str(yValue).encode('utf8')
                    elif type(yValue) != dict:
                        row_value[y] = yValue.encode('utf8')
                    else:
                        if inputFileName == "data":
                            row_value[y] = yValue["codename"].encode('utf8')
                            readAndWrite(inputFileName, primaryKey="codename")
                writer.writerow(row_value)
            elif primaryKey == "codename":
                for y in x["fields"].keys():
                    yValue = x["fields"].get(y)
                    if type(yValue) == int or type(yValue) == bool or type(yValue) == float or type(yValue) == list:
                        row_value[y] = str(yValue).encode('utf8')
                    elif type(yValue) != dict:
                        row_value[y] = yValue.encode('utf8')
                writer.writerow(row_value)

readAndWrite("data")

이 질문이 질문을받은 이래로 오랜 시간이 지났다는 것을 알고 있지만 다른 모든 사람들의 답변에 추가하고 솔루션을 매우 간결한 방식으로 설명하는 블로그 게시물을 공유 할 수 있다고 생각했습니다.

여기에 있습니다 링크

글을 쓰는 파일을 엽니 다

employ_data = open('/tmp/EmployData.csv', 'w')

CSV 작가 개체를 만듭니다

csvwriter = csv.writer(employ_data)
count = 0
for emp in emp_data:
      if count == 0:
             header = emp.keys()
             csvwriter.writerow(header)
             count += 1
      csvwriter.writerow(emp.values())

내용을 저장하려면 파일을 닫으십시오.

employ_data.close()

이것은 비교적 잘 작동합니다. JSON이 CSV 파일에 쓰는 것을 평평하게합니다. 중첩 요소가 관리됩니다 :)

그것은 파이썬 3을위한 것입니다

import json

o = json.loads('your json string') # Be careful, o must be a list, each of its objects will make a line of the csv.

def flatten(o, k='/'):
    global l, c_line
    if isinstance(o, dict):
        for key, value in o.items():
            flatten(value, k + '/' + key)
    elif isinstance(o, list):
        for ov in o:
            flatten(ov, '')
    elif isinstance(o, str):
        o = o.replace('\r',' ').replace('\n',' ').replace(';', ',')
        if not k in l:
            l[k]={}
        l[k][c_line]=o

def render_csv(l):
    ftime = True

    for i in range(100): #len(l[list(l.keys())[0]])
        for k in l:
            if ftime :
                print('%s;' % k, end='')
                continue
            v = l[k]
            try:
                print('%s;' % v[i], end='')
            except:
                print(';', end='')
        print()
        ftime = False
        i = 0

def json_to_csv(object_list):
    global l, c_line
    l = {}
    c_line = 0
    for ov in object_list : # Assumes json is a list of objects
        flatten(ov)
        c_line += 1
    render_csv(l)

json_to_csv(o)

즐겨.

이것을 해결하는 나의 간단한 방법 :

json_to_csv.py와 같은 새 Python 파일을 만듭니다

이 코드 추가 :

import csv, json, sys
#if you are not using utf-8 files, remove the next line
sys.setdefaultencoding("UTF-8")
#check if you pass the input file and output file
if sys.argv[1] is not None and sys.argv[2] is not None:

    fileInput = sys.argv[1]
    fileOutput = sys.argv[2]

    inputFile = open(fileInput)
    outputFile = open(fileOutput, 'w')
    data = json.load(inputFile)
    inputFile.close()

    output = csv.writer(outputFile)

    output.writerow(data[0].keys())  # header row

    for row in data:
        output.writerow(row.values())

이 코드를 추가 한 후 파일을 저장하고 터미널에서 실행합니다.

Python json_to_csv.py input.txt output.csv

도움이되기를 바랍니다.

안녕!

그것은 그것을하는 것은 매우 현명한 방법은 아니지만, 나는 같은 문제를 겪었고 이것은 나에게 효과적이었습니다.

import csv

f = open('data.json')
data = json.load(f)
f.close()

new_data = []

for i in data:
   flat = {}
   names = i.keys()
   for n in names:
      try:
         if len(i[n].keys()) > 0:
            for ii in i[n].keys():
               flat[n+"_"+ii] = i[n][ii]
      except:
         flat[n] = i[n]
   new_data.append(flat)  

f = open(filename, "r")
writer = csv.DictWriter(f, new_data[0].keys())
writer.writeheader()
for row in new_data:
   writer.writerow(row)
f.close()

내부 목록이있는 JSON을 지원하기위한 Alec McGail의 답변을 수정했습니다.

    def flattenjson(self, mp, delim="|"):
            ret = []
            if isinstance(mp, dict):
                    for k in mp.keys():
                            csvs = self.flattenjson(mp[k], delim)
                            for csv in csvs:
                                    ret.append(k + delim + csv)
            elif isinstance(mp, list):
                    for k in mp:
                            csvs = self.flattenjson(k, delim)
                            for csv in csvs:
                                    ret.append(csv)
            else:
                    ret.append(mp)

            return ret

감사!

import json,csv
t=''
t=(type('a'))
json_data = []
data = None
write_header = True
item_keys = []
try:
with open('kk.json') as json_file:
    json_data = json_file.read()

    data = json.loads(json_data)
except Exception as e:
    print( e)

with open('bar.csv', 'at') as csv_file:
    writer = csv.writer(csv_file)#, quoting=csv.QUOTE_MINIMAL)
    for item in data:
        item_values = []
        for key in item:
            if write_header:
                item_keys.append(key)
            value = item.get(key, '')
            if (type(value)==t):
                item_values.append(value.encode('utf-8'))
            else:
                item_values.append(value)
        if write_header:
            writer.writerow(item_keys)
            write_header = False
        writer.writerow(item_values)

이 시도

import csv, json, sys

input = open(sys.argv[1])
data = json.load(input)
input.close()

output = csv.writer(sys.stdout)

output.writerow(data[0].keys())  # header row

for item in data:
    output.writerow(item.values())

이 코드는 주어진 JSON 파일에 대해 작동합니다

# -*- coding: utf-8 -*-
"""
Created on Mon Jun 17 20:35:35 2019
author: Ram
"""

import json
import csv

with open("file1.json") as file:
    data = json.load(file)



# create the csv writer object
pt_data1 = open('pt_data1.csv', 'w')
csvwriter = csv.writer(pt_data1)

count = 0

for pt in data:

      if count == 0:

             header = pt.keys()

             csvwriter.writerow(header)

             count += 1

      csvwriter.writerow(pt.values())

pt_data1.close()

알렉의 대답 훌륭하지만 여러 레벨의 중첩이있는 경우에는 작동하지 않습니다. 다음은 여러 레벨의 중첩을 지원하는 수정 된 버전입니다. 또한 중첩 객체가 이미 자체 키를 지정하면 헤더 이름을 조금 더 멋지게 만듭니다 (예 : Firebase Analytics / Bigtable / BigQuery Data).

"""Converts JSON with nested fields into a flattened CSV file.
"""

import sys
import json
import csv
import os

import jsonlines

from orderedset import OrderedSet

# from https://stackoverflow.com/a/28246154/473201
def flattenjson( b, prefix='', delim='/', val=None ):
  if val == None:
    val = {}

  if isinstance( b, dict ):
    for j in b.keys():
      flattenjson(b[j], prefix + delim + j, delim, val)
  elif isinstance( b, list ):
    get = b
    for j in range(len(get)):
      key = str(j)

      # If the nested data contains its own key, use that as the header instead.
      if isinstance( get[j], dict ):
        if 'key' in get[j]:
          key = get[j]['key']

      flattenjson(get[j], prefix + delim + key, delim, val)
  else:
    val[prefix] = b

  return val

def main(argv):
  if len(argv) < 2:
    raise Error('Please specify a JSON file to parse')

  filename = argv[1]
  allRows = []
  fieldnames = OrderedSet()
  with jsonlines.open(filename) as reader:
    for obj in reader:
      #print obj
      flattened = flattenjson(obj)
      #print 'keys: %s' % flattened.keys()
      fieldnames.update(flattened.keys())
      allRows.append(flattened)

  outfilename = filename + '.csv'
  with open(outfilename, 'w') as file:
    csvwriter = csv.DictWriter(file, fieldnames=fieldnames)
    csvwriter.writeheader()
    for obj in allRows:
      csvwriter.writerow(obj)



if __name__ == '__main__':
  main(sys.argv)

데이터가 사전 형식으로 나타나기 때문에 실제로 적절한 헤더 정보가 포함된 행을 출력하려면 실제로 csv.DictWriter()를 사용해야 하는 것처럼 보입니다.이렇게 하면 변환을 좀 더 쉽게 처리할 수 있습니다.그러면 fieldnames 매개변수는 순서를 적절하게 설정하고 헤더로 첫 번째 줄의 출력을 통해 나중에 csv.DictReader()에서 읽고 처리할 수 있습니다.

예를 들어 Mike Repass는 다음을 사용했습니다.

output = csv.writer(sys.stdout)

output.writerow(data[0].keys())  # header row

for row in data:
  output.writerow(row.values())

그러나 초기 설정을 output = csv.dictwriter로 변경합니다 (Filesetting, FieldNames = data [0] .keys ()).

사전의 요소 순서는 정의되어 있지 않으므로 fieldnames 항목을 명시적으로 생성해야 할 수도 있습니다.그렇게 하면 writerow가 작동합니다.그러면 쓰기가 원래 표시된 대로 작동합니다.

불행히도 나는 Amazing @alec McGail 답변에 약간의 기여를하려는 명성을 얻지 못했습니다. Python3을 사용하고 있었고 @alexis r 댓글에 따라 맵을 목록으로 변환해야했습니다.

추가로 CSV 작가가 파일에 추가 CR을 추가하고 있음을 알게되었습니다 (CSV 파일 내부의 데이터가있는 각 줄에 빈 줄이 있습니다). 이 스레드에 대한 @jason R. Coombs에 따라 솔루션이 매우 쉬웠습니다.추가 캐리지 리턴을 추가하는 Python의 CSV

csv.writer에 lineterminator = ' n'매개 변수를 간단히 추가하면됩니다. 그럴 것입니다 : csv_w = csv.writer( out_file, lineterminator='\n' )

놀랍게도, 나는 지금까지 여기에 게시 된 답이 지금까지 가능한 모든 가능한 시나리오 (예 : 중첩 된 icts, 중첩 목록, 없음 값 등)를 올바르게 다루는 것을 발견했습니다.

이 솔루션은 모든 시나리오에서 작동해야합니다.

def flatten_json(json):
    def process_value(keys, value, flattened):
        if isinstance(value, dict):
            for key in value.keys():
                process_value(keys + [key], value[key], flattened)
        elif isinstance(value, list):
            for idx, v in enumerate(value):
                process_value(keys + [str(idx)], v, flattened)
        else:
            flattened['__'.join(keys)] = value

    flattened = {}
    for key in json.keys():
        process_value([key], json[key], flattened)
    return flattened

이 코드를 사용하여 파일을 읽은 후 JSON 파일을 CSV 파일로 변환 할 수 있습니다. 객체를 Pandas Dataframe으로 변환 한 다음 CSV 파일로 저장합니다.

import os
import pandas as pd
import json
import numpy as np

data = []
os.chdir('D:\\Your_directory\\folder')
with open('file_name.json', encoding="utf8") as data_file:    
     for line in data_file:
        data.append(json.loads(line))

dataframe = pd.DataFrame(data)        
## Saving the dataframe to a csv file
dataframe.to_csv("filename.csv", encoding='utf-8',index= False)

나는 파티에 늦었을 수도 있지만, 비슷한 문제를 다루었다고 생각합니다. 이렇게 보이는 JSON 파일이있었습니다

JSON File Structure

이 JSON 파일에서 몇 가지 키/값을 추출하고 싶었습니다. 그래서 나는 다음과 같은 코드를 썼다.

    """json_to_csv.py
    This script reads n numbers of json files present in a folder and then extract certain data from each file and write in a csv file.
    The folder contains the python script i.e. json_to_csv.py, output.csv and another folder descriptions containing all the json files.
"""

import os
import json
import csv


def get_list_of_json_files():
    """Returns the list of filenames of all the Json files present in the folder
    Parameter
    ---------
    directory : str
        'descriptions' in this case
    Returns
    -------
    list_of_files: list
        List of the filenames of all the json files
    """

    list_of_files = os.listdir('descriptions')  # creates list of all the files in the folder

    return list_of_files


def create_list_from_json(jsonfile):
    """Returns a list of the extracted items from json file in the same order we need it.
    Parameter
    _________
    jsonfile : json
        The json file containing the data
    Returns
    -------
    one_sample_list : list
        The list of the extracted items needed for the final csv
    """

    with open(jsonfile) as f:
        data = json.load(f)

    data_list = []  # create an empty list

    # append the items to the list in the same order.
    data_list.append(data['_id'])
    data_list.append(data['_modelType'])
    data_list.append(data['creator']['_id'])
    data_list.append(data['creator']['name'])
    data_list.append(data['dataset']['_accessLevel'])
    data_list.append(data['dataset']['_id'])
    data_list.append(data['dataset']['description'])
    data_list.append(data['dataset']['name'])
    data_list.append(data['meta']['acquisition']['image_type'])
    data_list.append(data['meta']['acquisition']['pixelsX'])
    data_list.append(data['meta']['acquisition']['pixelsY'])
    data_list.append(data['meta']['clinical']['age_approx'])
    data_list.append(data['meta']['clinical']['benign_malignant'])
    data_list.append(data['meta']['clinical']['diagnosis'])
    data_list.append(data['meta']['clinical']['diagnosis_confirm_type'])
    data_list.append(data['meta']['clinical']['melanocytic'])
    data_list.append(data['meta']['clinical']['sex'])
    data_list.append(data['meta']['unstructured']['diagnosis'])
    # In few json files, the race was not there so using KeyError exception to add '' at the place
    try:
        data_list.append(data['meta']['unstructured']['race'])
    except KeyError:
        data_list.append("")  # will add an empty string in case race is not there.
    data_list.append(data['name'])

    return data_list


def write_csv():
    """Creates the desired csv file
    Parameters
    __________
    list_of_files : file
        The list created by get_list_of_json_files() method
    result.csv : csv
        The csv file containing the header only
    Returns
    _______
    result.csv : csv
        The desired csv file
    """

    list_of_files = get_list_of_json_files()
    for file in list_of_files:
        row = create_list_from_json(f'descriptions/{file}')  # create the row to be added to csv for each file (json-file)
        with open('output.csv', 'a') as c:
            writer = csv.writer(c)
            writer.writerow(row)
        c.close()


if __name__ == '__main__':
    write_csv()

이것이 도움이되기를 바랍니다. 이 코드 작동 방식에 대한 자세한 내용은 확인할 수 있습니다. 여기

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top