stefankoegl / python-json-patch

Applying JSON Patches in Python
https://python-json-patch.readthedocs.org/
BSD 3-Clause "New" or "Revised" License
434 stars 94 forks source link

multiple modifications to an array fails #152

Open jcable opened 10 months ago

jcable commented 10 months ago
Traceback (most recent call last):
  File ".../lib/python3.11/site-packages/jsonpointer.py", line 281, in walk
    return doc[part]
           ~~~^^^^^^
IndexError: list index out of range

This are the relevant fields from the patch:

[
    {
        "op": "remove",
        "path": "/ownerships/0"
    },
    {
        "op": "remove",
        "path": "/ownerships/5/current"
    },
    {
        "op": "add",
        "path": "/ownerships/0",
        "value": {
            "share": 64,
            "start": 2023,
            "current": true
        }
    },
    {
        "op": "add",
        "path": "/ownerships/5/end",
        "value": 2023
    }
]

The unmodified document has 6 entries in the array.

Perhaps it's processing the changes in order, so that the first change modifies the array deleting item 0 and then item 5 is not present when it gets to the next change.