How to dynamically build a JSON object with Python?

I am new to Python and I am playing with JSON data. I would like to dynamically build a JSON object by adding some key-value to an existing JSON object.

I tried the following but I get TypeError: 'str' object does not support item assignment:

    import json

    json_data = json.dumps({})
    json_data["key"] = "value"

    print 'JSON: ', json_data

You build the object before encoding it to a JSON string:

    import json

    data = {}
    data['key'] = 'value'
    json_data = json.dumps(data)

JSON is a serialization format, textual data representing a structure. It is not, itself, that structure.