data is a Python dictionary. It needs to be encoded as JSON before writing.

Use this for maximum compatibility (Python 2 and 3):

import json
with open('data.json', 'w') as f:
    json.dump(data, f)

On a modern system (i.e. Python 3 and UTF-8 support), you can write a nicer file using:

import json
with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False, indent=4)

See json documentation.

Answer from phihag on Stack Overflow
🌐
GeeksforGeeks
geeksforgeeks.org › python › reading-and-writing-json-to-a-file-in-python
Reading and Writing JSON to a File in Python - GeeksforGeeks
It takes two parameters: dictionary: ... simply write it to a file using the "write" function. Example: Convert a dictionary to a JSON string and write it to a file....
Published   August 5, 2025
Top answer
1 of 16
3349

data is a Python dictionary. It needs to be encoded as JSON before writing.

Use this for maximum compatibility (Python 2 and 3):

import json
with open('data.json', 'w') as f:
    json.dump(data, f)

On a modern system (i.e. Python 3 and UTF-8 support), you can write a nicer file using:

import json
with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False, indent=4)

See json documentation.

2 of 16
347

To get utf8-encoded file as opposed to ascii-encoded in the accepted answer for Python 2 use:

import io, json
with io.open('data.txt', 'w', encoding='utf-8') as f:
  f.write(json.dumps(data, ensure_ascii=False))

The code is simpler in Python 3:

import json
with open('data.txt', 'w') as f:
  json.dump(data, f, ensure_ascii=False)

On Windows, the encoding='utf-8' argument to open is still necessary.

To avoid storing an encoded copy of the data in memory (result of dumps) and to output utf8-encoded bytestrings in both Python 2 and 3, use:

import json, codecs
with open('data.txt', 'wb') as f:
    json.dump(data, codecs.getwriter('utf-8')(f), ensure_ascii=False)

The codecs.getwriter call is redundant in Python 3 but required for Python 2


Readability and size:

The use of ensure_ascii=False gives better readability and smaller size:

>>> json.dumps({'price': '€10'})
'{"price": "\\u20ac10"}'
>>> json.dumps({'price': '€10'}, ensure_ascii=False)
'{"price": "€10"}'

>>> len(json.dumps({'абвгд': 1}))
37
>>> len(json.dumps({'абвгд': 1}, ensure_ascii=False).encode('utf8'))
17

Further improve readability by adding flags indent=4, sort_keys=True (as suggested by dinos66) to arguments of dump or dumps. This way you'll get a nicely indented sorted structure in the json file at the cost of a slightly larger file size.

🌐
Reddit
reddit.com › r/learnpython › need help understanding how to write a file to json (python) without overwriting it
r/learnpython on Reddit: need help understanding how to write a file to json (python) without overwriting it
October 4, 2022 -
My Code:  Python, (Using discord rewrite if this matters)

user_id = str(ctx.message.author.id)
        print(user_id)

        # reads data
        with open("test.json", "r") as f:
            data = json.load(f)
            print(data)
            print(type(data))

            # checks if user is in data
            if user_id not in data['users'].__str__():
                data.update({})
                print(data)

                # checks if data is type list
                if type(data) is dict:
                    data = [data]
                    print(type(data))

                # updates data with new user
                data.append({"user_id": user_id})
                print(data)
                
                # writes new data to json file
                with open("test.json", "w"):
                    json.dump(data, f)

Error Code:  Command raised an exception: UnsupportedOperation: not writable
🌐
Real Python
realpython.com › python-json
Working With JSON Data in Python – Real Python
August 20, 2025 - JSON is a good data format to use with Python as it’s human-readable and straightforward to serialize and deserialize, which makes it ideal for use in APIs and data storage. You write JSON with Python using json.dump() to serialize data to a file.
🌐
Medium
medium.com › @ryan_forrester_ › writing-json-to-a-file-in-python-a-step-by-step-guide-630584957d07
Writing JSON to a File in Python: A Step-by-Step Guide | by ryan | Medium
November 6, 2024 - JSON (JavaScript Object Notation) ... read and write, and easy for machines to parse and generate. In Python, working with JSON is straightforward thanks to the built-in `json` module. This article will guide you through the process of writing JSON to a file in Python with detailed explanations and practical code examples, making it ...
🌐
How Tos JSON
campbell-muscle-lab.github.io › howtos_json › pages › in_code › python › writing › writing.html
Writing JSON Files - How Tos JSON
Notice how close this syntax # is to the JSON structure! our_dict = { "model1": { "mode": "fast", "solver": 2 }, "model2": { "mode": "slow", "solver": 4 }, "y0": [10, 112.07] } # Now we write the dictionary to a JSON file. # NOTE: As with the Python JSON "reading" demo, it is best practice ...
🌐
Python
docs.python.org › 3 › library › json.html
JSON encoder and decoder — Python 3.14.3 documentation
Serialize obj as a JSON formatted stream to fp (a .write()-supporting file-like object) using this Python-to-JSON conversion table.
Find elsewhere
🌐
Reddit
reddit.com › r/learnpython › how would you use python to create json files?
r/learnpython on Reddit: How would you use python to create JSON files?
March 7, 2020 -

Howdy!

I recently took a coding test for an internship program, I was quickly put in check by the coding test. I am only about 50 hours into coding, but I had higher hopes for myself then how I performed.

The questions that tripped me up were how to take input in the form of a Dict [] and create a JSON object out of it. I was allowed to read documentation during the test and found the JSON library with json.dumps, but couldn't figure out how to use it in the allotted time. =^(

In the spirit of improvement would you fine folks of r/learnpython be willing to show how you would create a JSON object with python, and outline some reasons as to why you would want to create a JSON object in the first place? I'm hoping to learn something new, but I also hope that there are a few on this sub who can come across the post and learn something new too.

On the bright side, I solved FizzBuzz no problem. That problem gave me anxiety when I first started coding, and now I can solve it expertly. Little wins!

Thank you! =^)

Top answer
1 of 4
5
I read two concrete questions from your post: why you would want to create a JSON object Imagine you want multiple software systems to communicate. Let's say we have three systems, one written in Python, one client written in JavaScript and one more backend system in Java. You can't just send Python objects over a network and expect the systems written in JS or Java to understand them. Same thing the other way around. In the end it's just electrical signals and both the sender and receiver need a common understanding of how to interpret those signals, otherwise they will just be gibberish. That's where data formats like JSON come into play: It's a simple and standardized data format that can be handled in any modern programming language. Now your Python code can serialize its internal representation of a piece of data into this format and send it over a network or store it on some disk, where some other system will eventually pick it up, deserialize it into its own internal representation and process it. show how you would create a JSON object with python import json data = {"year": 2020, "sales": 12345678, "currency": "€"} # creating a JSON string json_string = json.dumps(data) # storing it in a file with open("data.json", "w") as json_file: json.dump(data, json_file)
2 of 4
3
If you know about the JSON library, there's not much more to tell. RealPython have excellent tutorials and information. https://realpython.com/python-json/ You can find a lot more by searching "python json tutorial".
🌐
W3Schools
w3schools.com › python › python_json.asp
Python JSON
Python has a built-in package called json, which can be used to work with JSON data. ... If you have a JSON string, you can parse it by using the json.loads() method.
🌐
Better Stack
betterstack.com › community › questions › how-to-write-json-data-to-file-in-python
How do I write JSON data to a file in Python? | Better Stack Community
The dump() function takes two arguments: the JSON data and the file-like object to which the data should be written. The with open statement opens the file "data.json" in "w" mode, which means it will be opened for writing.
🌐
Board Infinity
boardinfinity.com › blog › json-file-in-python
JSON file in Python: Read and Write | Board Infinity
January 3, 2025 - ... #pretty write json file in python import json # Sample Python dictionary data = { "name": "John", "age": 30, "isStudent": False, "courses": ["Math", "Science"] } # Convert Python dictionary to JSON string with pretty formatting json_string ...
🌐
CodeSignal
codesignal.com › learn › courses › hierarchical-and-structured-data-formats › lessons › constructing-objects-and-writing-to-json-files
Constructing Objects and Writing to JSON Files
It offers simple functions to convert between Python objects and JSON. To write our data to a JSON file, we'll use the json.dump() function, which serializes Python objects into JSON format and writes it to a file.
🌐
freeCodeCamp
freecodecamp.org › news › how-to-use-the-json-module-in-python
How to Use the JSON Module in Python – A Beginner's Guide
June 5, 2023 - As you can see in the example, executing the json.tool module with the input file path formats the JSON data and displays the formatted output on the console. You can also redirect the formatted output to an output file by specifying the output file name as the second argument: python -m json.tool horoscope_data.json formatted_data.json
🌐
Sentry
sentry.io › sentry answers › python › write json data to a file in python
Write JSON data to a file in Python | Sentry
The indent keyword argument specifies the number of spaces to use for indentation when formatting the JSON data. Note that if our dictionary contains any keys that are not strings, integers, floats, booleans, or None, this code will raise a TypeError. To skip these keys instead, we can pass skip_keys=True to json.dump.
🌐
Medium
medium.com › data-science › working-with-json-data-in-python-45e25ff958ce
JSON in Python Tutorial | TDS Archive
August 11, 2021 - Writing to json files, reading from json files explained and illustrated with examples in python.
🌐
Programiz
programiz.com › python-programming › json
Python JSON: Read, Write, Parse JSON (With Examples)
Here's a table showing Python objects and their equivalent conversion to JSON. To write JSON to a file in Python, we can use json.dump() method.
🌐
Python Examples
pythonexamples.org › python-write-json-to-file
Python Write JSON to File
Prepare JSON string by converting a Python Object to JSON string using json.dumps() function. Create a JSON file using open(filename, 'w') function. We are opening file in write mode. Use file.write(text) to write JSON content prepared in step 1 to the file created in step 2. Close the JSON file.
🌐
HackerNoon
hackernoon.com › how-to-read-and-write-json-files-in-python
How to read and write JSON files in Python | HackerNoon
March 19, 2024 - We will discuss how to use Python to read, write, and manipulate JSON files.