Преобразование JSON в CSV в Python

Опубликовано: 2 Декабря, 2021

Полная форма JSON - это нотация объектов JavaScript . Это означает, что файл сценария (исполняемый), состоящий из текста на языке программирования, используется для хранения и передачи данных. Python поддерживает JSON через встроенный пакет JSON. Чтобы использовать эту функцию, мы импортируем пакет JSON в скрипт Python. Текст в JSON создается с помощью строки в кавычках, которая содержит значение в сопоставлении "ключ-значение" в {}. Он похож на словарь в Python.

CSV (значения, разделенные запятыми) - это простой формат файла, используемый для хранения табличных данных, таких как электронная таблица или база данных. В файле CSV табличные данные (числа и текст) хранятся в виде простого текста. Каждая строка файла представляет собой запись данных. Каждая запись состоит из одного или нескольких полей, разделенных запятыми. Использование запятой в качестве разделителя полей является источником имени для этого формата файла.

Refer to the below articles to understand the basics of JSON and CSV. 
 

  • Working With JSON Data in Python 
  • Working with CSV file in Python. 

Конвертация JSON в CSV

Для простых данных JSON, состоящих из пар ключей и значений, ключи будут заголовками для файла CSV, а значения - описательными данными.

Пример: предположим, что файл JSON выглядит так:

Мы хотим преобразовать указанный выше JSON в файл CSV с ключом в качестве заголовков.

Python3

# Python program to convert
# JSON file to CSV
import json
import csv
# Opening JSON file and loading the data
# into the variable data
with open ( 'data.json' ) as json_file:
data = json.load(json_file)
employee_data = data[ 'emp_details' ]
# now we will open a file for writing
data_file = open ( 'data_file.csv' , 'w' )
# create the csv writer object
csv_writer = csv.writer(data_file)
# Counter variable used for writing
# headers to the CSV file
count = 0
for emp in employee_data:
if count = = 0 :
# Writing headers of CSV file
header = emp.keys()
csv_writer.writerow(header)
count + = 1
# Writing data of CSV file
csv_writer.writerow(emp.values())
data_file.close()

Выход:

И, если вы работаете с данными JSON следующим образом:

[



    {‘Age’: 18.0, ‘Salary’: 20000.0, ‘Gender’: ‘Male’, ‘Country’: ‘Germany’, ‘Purchased’: ‘N’}

    {‘Age’: 19.0, ‘Salary’: 22000.0, ‘Gender’: ‘Female’, ‘Country’: ‘France’, ‘Purchased’: ‘N’}

    {‘Age’: 20.0, ‘Salary’: 24000.0, ‘Gender’: ‘Female’, ‘Country’: ‘England’, ‘Purchased’: ‘N’}

]

Приведенный ниже код отлично подойдет вам (отформатируйте код перед запуском)

Python3

import json
import csv
with open ( 'G:Akhiljsonoutput.json' ) as json_file:
jsondata = json.load(json_file)
data_file = open ( 'G:Akhiljsonoutput.csv' , 'w' , newline = '')
csv_writer = csv.writer(data_file)
count = 0
for data in jsondata:
if count = = 0 :
header = data.keys()
csv_writer.writerow(header)
count + = 1
csv_writer.writerow(data.values())
data_file.close()

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.