[Python] Modify JSON data in Python 3

Discussão em 'Python' iniciado por Stack, Janeiro 23, 2025.

  1. Stack

    Stack Membro Participativo

    I am trying to amend the value of a node in my JSON, however, I keep getting "SyntaxError: invalid Syntax"

    Every question I've looked at gives the same answer: 1, 2, 3. As do online article (example). Use (in psuedo terms) {jsonvariable}.["{Node Name}"] = {new value} however, this doesn't work, no matter what I try, the Python file refuses to run.

    This makes me assume it's my implementation, but perhaps it because these answers are based on Python 2 and I'm (currently) using 3.7.5.

    The JSON value I'm trying to update is a second level value, which might make a difference, however, Googling/Searching appears to never bring me to a example with that, and I know that clock.[id+".Status"] = "Finished doesn't work.

    The JSON snippet looks like this:

    {
    "0c2ad7d1-0fc9-47d5-99a2-2e7c8cff2a3d": {
    "Status": "Finished",
    "Status Time": "2020-05-17 16:48:12.584676",
    "Channel ID": 704635364039589941,
    "Active Player": 1,
    "Message ID": "",
    "Player1": {
    "Name": "Larnu",
    "ID": 357506009675333632,
    "Remaining": "01:00"
    },
    "Player2": {
    "Name": "Dolphin Bot",
    "ID": 357506009675333632,
    "Remaining": "01:00"
    }
    },
    "a370d674-6f1a-41be-86d2-9f8c73ab8ab0": {
    "Status": "Not Started",
    "Status Time": "2020-05-17 16:48:12.584676",
    "Channel ID": 704635364039589941,
    "Active Player": "1",
    "Message ID": "711605974779166730",
    "Player1": {
    "Name": "Larnu",
    "ID": 357506009675333632,
    "Remaining": "01:00:00"
    },
    "Player2": {
    "Name": "Dolphin Alpha",
    "ID": 704635572580253818,
    "Remaining": "01:00:00"
    }
    }
    }


    And the value I'm trying to change is Status in the a370d674-6f1a-41be-86d2-9f8c73ab8ab0 tree. The relevant part that's erroring is:

    with open("clocks.json","r+") as clocks_file:
    clocks = json.load(clocks_file)
    clock = clocks[clockid]
    clock.['Status'] = "Finished"



    clockid would have been set previously (if the Python file ran) with the value a370d674-6f1a-41be-86d2-9f8c73ab8ab0.

    Continue reading...

Compartilhe esta Página