Как конвертировать json в csv python
Перейти к содержимому

Как конвертировать json в csv python

  • автор:

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

csv должен быть такого вида

Выше приведен json, как на основе него создать csv

задан 5 янв 2022 в 15:44
613 5 5 серебряных знаков 23 23 бронзовых знака

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Проще всего воспользоваться модулем Pandas

import json import pandas as pd # pip install pandas # json_str = "" # JSON data = json.loads(json_str) df = pd.DataFrame(data) df.to_csv("result.csv", index=False) 

для любителей однострочников:

pd.DataFrame(json.loads(json_str)).to_csv("result.csv", index=False) 

16.5k 2 2 золотых знака 15 15 серебряных знаков 24 24 бронзовых знака
ответ дан 5 янв 2022 в 16:11
MaxU — stand with Ukraine MaxU — stand with Ukraine
149k 12 12 золотых знаков 59 59 серебряных знаков 133 133 бронзовых знака
а как сделать, чтобы его excel понимал?
5 янв 2022 в 16:14

@splash58, можно либо сразу сохранить в Excel файл: df.to_excel(«result.xlsx», index=False) либо использовать разделитель в CSV, который понимает Excel: df.to_csv(«result.csv», sep=»;», index=False)

5 янв 2022 в 16:16

ага. а я подумал, что проблема с кавычками вокруг строк 🙂 конечно, сразу в ексель правильнее — тут и флоаты в даты слетят при открывании. Это я из любопытства

Как перевести JSON в CSV?

То есть, у каждого предмета есть ряд характеристик, которые могут быть словарем, списком или строкой. Мне нужно превратить это в CSV подобного вида:

item_name | props1 | props2_key1 | props2_key2 | props2_key3| props3 item1 | list | value1 | value2 | value3 | string item1 | list | value1 | value2 | value3 | string 

Есть ли простые варианты сделать это?
51.6k 204 204 золотых знака 67 67 серебряных знаков 251 251 бронзовый знак
задан 10 дек 2020 в 10:20
405 3 3 серебряных знака 11 11 бронзовых знаков
16 дек 2020 в 23:21

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Воспользуйтесь модулем Pandas:

import pandas as pd # pip install pandas | conda install pandas json_data = < "item1": , "props3": "string_value" >, "item2": , "props3": "string_value" > > pd.json_normalize(json_data, sep="_").to_csv("/path/to/result.csv", index=False) 

PS json_data — должен быть словарем, соответственно если у вас данные хранятся как JSON строка или как JSON файл, то сначала необходимо спарсить JSON в словарь ( dict ).

In [118]: print(pd.json_normalize(data, sep="_").to_csv(index=False)) item1_props1,item1_props2_key1,item1_props2_key2,item1_props2_key3,item1_props3,item2_props1,item2_props2_key4,item2_props2_key5,item2_props2_key6,item2_props3 "[1, 2, 3, 4, 5, 6]",value1,value2,value3,string_value,"[1, 2, 3, 4, 5, 6]",value4,value5,value6,string_value 

How to Convert JSON to CSV in Python

Depending on what project you happen to be working on, your data can come in multiple formats. So, it’s important to be comfortable handling data in a variety of formats. JSON and CSV are two very popular formats. In this article, we’ll show you how to convert the JSON format into CSV in Python.

For some background reading, you may want to check out Learn How to Work with Files and Directories in Python, and How to Write to File in Python. These articles contain some useful information and examples which we’ll build on here.

The JSON File Format

JSON (JavaScript Object Notation) is a lightweight and easy-to-understand file format used to store and transfer data. It’s human readable – if you open the file in a text editor, you’ll be able to understand and interpret the structure of the file and the data within it.

If you know Python dictionaries, JSON’s structure may look familiar. The contents of a JSON file look something like this:

JSON files contain name:value pairs. There are several allowed data types, such as strings, numbers, arrays (ordered lists inside square brackets), and Booleans (true, false). Nested objects (name:value pairs) and empty values (nulls) are also allowed. For some relevant learning material, check out our How to Read and Write JSON Files in Python course, which includes 35 interactive exercises.

The CSV File Format

CSV (Comma Separated Value) files are also a very popular way of storing and transferring data. The format is similar to an Excel spreadsheet; the data instances are rows in the file, and the values are separated by a comma. The files can also be viewed in a text editor and look a little like this:

first_name,last_name,age,email,hobbies,married Arna,Gunnarsson,38,arna.gunnarsson@email.com,"tennis,cooking",false

There is less standardization with CSV files. Some implementations allow or require quotation marks around the fields. Having a comma in your data requires quotes around the entry. Some files may even have a different delimiter (such as a tab, semicolon, or white space) but still be given the .csv file handle.

Converting from JSON to CSV

There may be cases where you want to convert from JSON to CSV. Perhaps you’re working on a project that collects data from different sources and each source has a different format. Or maybe you only have data in JSON, but the script your colleague gave you requires data in the CSV format. In this case, you’ll have to convert from one format to the other.

Below is an example JSON file we’ll work with. Copy the following data into a text file and save it as data.json . We’ll show you two methods to go from a JSON file to the same data in the CSV format. Here’s the JSON file we’ll use:

The json and csv Modules

Python’s json module can be used to read and write JSON data. Its main functions are load() and loads() to load a file object or a string and dump() and dumps() to write to a JSON file. Sound complicated? The article How to Convert a String to JSON in Python may clear things up.

We’ll start by reading in our JSON data using open() :

>>> import json >>> with open('data.json') as f: . json_data = json.load(f)

The json_data object is a list of dictionaries; each dictionary corresponds to a row we’ll write to the CSV file. To do this, we’ll take advantage of Python’s csv module:

>>> import csv >>> headers = json_data[0].keys() >>> with open('data1.csv', 'w', newline='\n') as f: . writer = csv.DictWriter(f, fieldnames=headers) . writer.writeheader() . writer.writerows(json_data)

Here, we first extract the headers as the keys of the first dictionary in the list. Just be aware that we’re assuming all dictionaries in the list have the same keys. It could be useful to explicitly check this. Try building this functionality yourself.

Next, we open a file object with the name data1.csv and the newline character (defined as ‘\n’ ) so we can write data into this file. In the following line, we create a DictWriter object, which maps the dictionaries into output rows. Finally, we write our header data, followed by each row using the writeheader() and writerows() functions.

pandas Is Your Friend

There is a way to achieve the same result using only one module and far fewer lines of code. It makes the process of converting JSON to CSV easier, more readable, and less error prone. The secret is the pandas library:

>>> import pandas as pd >>> df = pd.read_json('data.json') >>> df.to_csv('data2.csv', index=False)

Here we simply read the data directly from JSON into a pandas DataFrame. Then we convert it to CSV and write it to a file in one line. Setting index=False ensures the index from the pandas DataFrame is not written to the file data2.csv .

After trying out these two methods, in both cases the CSV file should look like this:

first_name,last_name,age,email Arna,Gunnarsson,38,arna.gunnarsson@email.com Inga,Hagen,32,ihgn_91@webmail.dk

Where to Next with JSON and CSV Data?

The json and csv modules are pretty fundamental. They’ve earned a place in our Top 15 Python Libraries for Data Science.

Once you have mastered the basics of Python, it’s important to keep adding new skills. Check out our Data Processing with Python track, which covers some advanced aspects of working with data. When you’re comfortable working with data in Python, you’ll need to use it to produce visualizations and tables to convey information. The article How to Pretty-Print Tables in Python could provide some inspiration on how to better present information to people who need it to make decisions.

�� Как конвертировать json в csv с помощью Python? ����

Чтобы конвертировать JSON в CSV в Python, вы можете использовать библиотеку «pandas». Сначала импортируйте эту библиотеку:

 import pandas as pd 

Затем загрузите JSON-файл с помощью функции «read_json» и сохраните его в переменной:

 data = pd.read_json('file.json') 

Далее, преобразуйте данные в CSV-файл с помощью функции «to_csv» и укажите имя нового файла:

 data.to_csv('file.csv', index=False) 

Это сохранит данные из JSON-файла в новом CSV-файле. Убедитесь, что у вас установлена библиотека «pandas», используя команду pip install pandas.

Детальный ответ

Конвертация JSON в CSV в Python JSON (JavaScript Object Notation) и CSV (Comma Separated Values) — это два популярных формата хранения данных. Иногда вам может потребоваться конвертировать данные из формата JSON в формат CSV для дальнейшего анализа или использования в других инструментах. В этой статье мы рассмотрим, как выполнить конвертацию JSON в CSV с помощью языка программирования Python.

Шаг 1: Импортирование необходимых модулей

Первым шагом в конвертации JSON в CSV является импортирование необходимых модулей. В Python для этой задачи мы можем использовать модули json и csv . Проверьте, что вы установили эти модули в своей среде разработки:

import json import csv

Шаг 2: Загрузка JSON-файла

Второй шаг — загрузить JSON-файл с данными. Предположим, что у нас есть файл с именем «data.json». Мы можем его открыть и загрузить данные с помощью модуля json :

with open('data.json') as json_file: data = json.load(json_file)

В результате выполнения этого кода переменная data будет содержать загруженные из JSON данные.

Шаг 3: Создание CSV-файла и запись данных

Третий шаг — создать CSV-файл и записать данные из JSON в этот файл. Мы можем использовать модуль csv для этой задачи:

csv_file = open('data.csv', 'w') csv_writer = csv.writer(csv_file) for item in data: csv_writer.writerow(item.values()) csv_file.close()

В результате выполнения этого кода мы создадим файл с именем «data.csv» и запишем в него данные из JSON-файла.

Полный код

Вот полный код, который выполняет конвертацию JSON в CSV:

import json import csv with open('data.json') as json_file: data = json.load(json_file) csv_file = open('data.csv', 'w') csv_writer = csv.writer(csv_file) for item in data: csv_writer.writerow(item.values()) csv_file.close()

Обратите внимание, что в приведенном выше коде мы предполагаем, что у нас уже есть файлы «data.json» и «data.csv». Убедитесь, что ваши файлы имеют правильные имена и пути.


В этой статье мы рассмотрели, как выполнить конвертацию JSON в CSV с помощью языка программирования Python. Мы обсудили импортирование модулей json и csv , загрузку JSON-файла, создание CSV-файла и запись данных. Вы также получили полный рабочий код для выполнения задачи. Теперь вы можете легко конвертировать данные из формата JSON в формат CSV с помощью Python. Удачи в вашем программировании!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *