Если вы просто хотите создать локально уникальное значение, вы можете использовать действительно простой подход автоинкремента.
data = [
{"name": "Bill"},
{"name": "Javier"},
{"name": "Jane"},
{"name": "Xi"},
{"name": "Nosferatu"},
]
current_id = 1
for record in data:
record["id"] = current_id
current_id += 1
print(record)
# {'name': 'Bill', 'id': 1}
# {'name': 'Javier', 'id': 2}
# {'name': 'Jane', 'id': 3}
# {'name': 'Xi', 'id': 4}
# {'name': 'Nosferatu', 'id': 5}
Чтобы добавить новое значение, если вы не инициализируете таким образом, вы можете получитьпоследний с max(d.get("id", 0) for d in data)
.
Это может вызвать различные проблемы в зависимости от вашего варианта использования.Если вы не хотите беспокоиться об этом, вы также можете добавить UUID;они тяжелее, но их легко генерировать с разумной уверенностью в уникальности.
from uuid import uuid4
data = [{"name": "Conan the Librarian"}]
data[0]["id"] = str(uuid4())
print(data)
# 'id' will be different each time; example:
# [{'name': 'Conan the Librarian', 'id': '85bb4db9-c450-46e3-a027-cb573a09f3e3'}]
Однако, не зная вашего фактического варианта использования, невозможно сказать, будет ли полезен один, один или оба этих подхода илинеобходимо.