# Python Tutorial: Writing Python Data Class to CSV!

**Objective:**

Learn how to convert a Python data class to a CSV (Comma-Separated Values) file.

## **Step 1:**

**Import Necessary Modules**

```python
import csv
from dataclasses import dataclass
```

## **Step 2:**

**Define a Data Class** Create a data class representing the data structure you want to convert to CSV.

```python
@dataclass
class Person:
    name: str
    age: int
    city: str
```

## **Step 3:**

**Create Data Instances** Instantiate objects of the data class to represent individual records.

```python
person1 = Person("Alice", 25, "New York")
person2 = Person("Bob", 30, "San Francisco")
person3 = Person("Charlie", 22, "Los Angeles")
```

## **Step 4:**

**Convert Data Class Instances to CSV** Define a function to convert data class instances to CSV and write to a file.

```python
def write_to_csv(file_path, data_instances):
    with open(file_path, mode='w', newline='') as file:
        writer = csv.writer(file)
        
        # Write header
        writer.writerow(data_instances[0].__annotations__.keys())
        
        # Write data
        for instance in data_instances:
            writer.writerow(instance.__dict__.values())
```

**Step 5: Call the Function** Call the function with the file path and the list of data class instances.

```python
data_instances = [person1, person2, person3]
write_to_csv('people.csv', data_instances)
```

## **Step 6:**

**Check the Output** Inspect the generated CSV file (`people.csv`) to verify that the data has been successfully written.

## **Conclusion:**

This tutorial provides a basic overview of converting Python data class instances to a CSV file. As you progress, you can explore additional features of the `csv` module and enhance the code to handle more complex scenarios. This foundational knowledge will be beneficial as you delve further into Python programming.

I hope this helps, you!!

**More such articles:**

[https://medium.com/techwasti](Link)

[https://www.youtube.com/@maheshwarligade](https://www.youtube.com/@maheshwarligade)

[https://techwasti.com/series/spring-boot-tutorials](https://techwasti.com/series/spring-boot-tutorials)

[https://techwasti.com/series/go-language](https://techwasti.com/series/go-language)
