如果您只想创建一个本地唯一的值,那么可以使用一个非常简单的自动递增方法。
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'}]
但是,在不了解您的实际用例的情况下,不可能确定这些方法中的一种或两种是有用的还是合适的。