codergirl
codergirl

Reputation: 35

how to print out json data from csv

[{"Name": "Luke Skywalker", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Darth Vader", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Obi-Wan Kenobi", "Affiliation": "Jedi", "Allegiance": "TO THE REPUBLIC, TO DEMOCRACY!"}, {"Name": "Anakin Skywalker", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Yoda", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Palpatine", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Qui-Gon Jinn", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Jar Jar Binks", "Affiliation": "N/A", "Allegiance": "Possible Sith"}, {"Name": "Darth Maul", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Mace Windu", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Ki-Adi-Mundi", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Kit Fisto", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Eeth Koth", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Plo Koon", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Dooku", "Affiliation": "Sith", "Allegiance": ""}]

the output im getting above is what im getting with the code:

    data = []
    with open('starwrs.csv') as f:
        for row in csv.DictReader(f):
            data.append(row)

    json_data = json.dumps(data)
    return json_data

but how do i get it so that it looks like actual json data like directly under eachother etc and not the string that im getting

[{"Name": "Luke Skywalker", "Affiliation": "Jedi", "Allegiance": ""}, 
{"Name": "Darth Vader", "Affiliation": "Sith", "Allegiance": ""}

Upvotes: 1

Views: 69

Answers (2)

SAIKAT
SAIKAT

Reputation: 113

Use json.dumps(json_object, indent=2)...

import json
json_data='[{"Name": "Luke Skywalker", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Darth Vader", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Obi-Wan Kenobi", "Affiliation": "Jedi", "Allegiance": "TO THE REPUBLIC, TO DEMOCRACY!"}, {"Name": "Anakin Skywalker", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Yoda", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Palpatine", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Qui-Gon Jinn", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Jar Jar Binks", "Affiliation": "N/A", "Allegiance": "Possible Sith"}, {"Name": "Darth Maul", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Mace Windu", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Ki-Adi-Mundi", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Kit Fisto", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Eeth Koth", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Plo Koon", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Dooku", "Affiliation": "Sith", "Allegiance": ""}]'
json_object = json.loads(json_data)
json_formatted_str = json.dumps(json_object, indent=2)
print(json_formatted_str)

Upvotes: 1

Animesh Singh
Animesh Singh

Reputation: 76

I guess you want to pretty print the json. If that's the case use this

json_data = json.dumps(data, indent=4)
print(json_data)

The indent in json.dumps helps to create the indentation which makes json look formatted

[
    {
        "Name": "Luke Skywalker",
        "Affiliation": "Jedi",
        "Allegiance": ""
    },
    {
        "Name": "Darth Vader",
        "Affiliation": "Sith",
        "Allegiance": ""
    },
    {
        "Name": "Obi-Wan Kenobi",
        "Affiliation": "Jedi",
        "Allegiance": "TO THE REPUBLIC, TO DEMOCRACY!"
    },
    {
        "Name": "Anakin Skywalker",
        "Affiliation": "Jedi",
        "Allegiance": ""
    },
    {
        "Name": "Yoda",
        "Affiliation": "Jedi",
        "Allegiance": ""
    },
    {
        "Name": "Palpatine",
        "Affiliation": "Sith",
        "Allegiance": ""
    },
    {
        "Name": "Qui-Gon Jinn",
        "Affiliation": "Jedi",
        "Allegiance": ""
    },
    {
        "Name": "Jar Jar Binks",
        "Affiliation": "N/A",
        "Allegiance": "Possible Sith"
    },
    {
        "Name": "Darth Maul",
        "Affiliation": "Sith",
        "Allegiance": ""
    },
    {
        "Name": "Mace Windu",
        "Affiliation": "Jedi",
        "Allegiance": ""
    },
    {
        "Name": "Ki-Adi-Mundi",
        "Affiliation": "Jedi",
        "Allegiance": ""
    },
    {
        "Name": "Kit Fisto",
        "Affiliation": "Jedi",
        "Allegiance": ""
    },
    {
        "Name": "Eeth Koth",
        "Affiliation": "Jedi",
        "Allegiance": ""
    },
    {
        "Name": "Plo Koon",
        "Affiliation": "Jedi",
        "Allegiance": ""
    },
    {
        "Name": "Dooku",
        "Affiliation": "Sith",
        "Allegiance": ""
    }
]

Upvotes: 0

Related Questions