Python 对象 ID

Python Object ID

我想在python中创建一个对象ID,我解释一下:

我知道存在 mysql、sqlite、mongoDB 等...但我想至少为 json.[=12 中的存储数据创建一个对象 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'}]

不过,在不知道您的实际用例的情况下,无法判断这些方法中的一种、一种或两种是否有用或合适。