How to pass arguments to Python job

Hello,

I would like to pass an argument to Python job, but no matter what I do, python doesnt like it.

My initial thought was to pass it like this:

'{<QUOTE>user<QUOTE>:<QUOTE>tas<QUOTE>}'

It looks good in logs, and the command that is generated works fine in my shell.
But for some reason python script that is run, receives something else.

2025-07-16 11:39:53:  0: INFO: Executable: "/usr/bin/python3"
2025-07-16 11:39:53:  0: INFO: Argument: -u "/Volumes/Work/VFXTricks/Tools/Deadline/scripts/generate_jobs.py" '{"user":"tas"}'
2025-07-16 11:39:53:  0: INFO: Full Command: "/usr/bin/python3" -u "/Volumes/Work/VFXTricks/Tools/Deadline/scripts/generate_jobs.py" '{"user":"tas"}'
2025-07-16 11:39:53:  0: INFO: Startup Directory: "/usr/bin"
2025-07-16 11:39:53:  0: INFO: Process Priority: BelowNormal
2025-07-16 11:39:53:  0: INFO: Process Affinity: default
2025-07-16 11:39:53:  0: INFO: Process is now running
2025-07-16 11:39:53:  0: STDOUT: Received config: '{user:tas}'
2025-07-16 11:39:53:  0: STDOUT: JSON parsing error: Expecting value: line 1 column 1 (char 0)
2025-07-16 11:39:53:  0: STDOUT: Raw config string: "'{user:tas}'"
2025-07-16 11:39:53:  0: INFO: Process exit code: 1

generate_jobs.py

def main():
    try:
        config_json = sys.argv[1]

        print(f"Received config: {config_json}")

        config = json.loads(config_json)
        print(f"{config = }")

        print("Generating video processing jobs...")
        return

if __name__ == "__main__":
    main()

any help is greatly appreciated,
thank you

I got it.

When I send job I add arguments like this:

"Arguments": f"<QUOTE>{json.dumps(job_config).replace('"', "'")}<QUOTE>",

When I load args into my script, I need to untangle the quotes:

config_json = sys.argv[1].replace("'", '"')