我想在python中创建一个对象ID,我解释说:
我知道存在mysql,sqlite,mongoDB等...但我想至少为 json 中的存储数据创建一个对象 ID。
在我将 json 信息放入列表中之前,ID 是列表中此 json 的索引,例如:
data = [{"name": userName}]
data[0]["id"] = len(data) - 1
然后我意识到这是错误的,显然看起来不像 objectID,然后我认为 ID 可以是日期和时间,但我认为也是错误的,所以,我想知道像 objectID 一样制作的最佳方式,它代表列表中的这个 json。 这个列表会更长, 适用于用户或客户(只是一个个人项目(。以及如何成为创建ID的方法的示例
非常感谢,希望我解释得很好。
如果您只想创建一个本地唯一值,则可以使用非常简单的自动增量方法。
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'}]
但是,如果不了解您的实际用例,就不可能说这两种方法中的一种、其中一种或两种方法是否有用或合适。