【问题标题】:Python ObjectId from str来自 str 的 Python ObjectId
【发布时间】:2021-07-28 01:53:08
【问题描述】:

我有一个 str 如下:

str = "ObjectId('60fe547ce9d9f9fd5f03bdab')"

我想把它转换成bson.objectid。由于ObjectId() 函数只需要 24 位十六进制字符串,所以我通过字符串操作来实现这一点,这绝对不是正确的方法:

obj = ObjectId(str[10:34])

有没有标准的方法或更好的方法来实现这一点。

编辑:我在 HTTP POST 请求中收到字符串数据

【问题讨论】:

  • 你是怎么找到这个字符串的?当然,无论 API 为您提供该字符串的什么,都比随意的字符串操作更直接地获取对象 ID。
  • 你可以用单引号分割字符串并取中间部分。
  • str[10:-2] 略逊一筹。

标签: python


【解决方案1】:

这看起来是实现您需要的好方法。有时最好的做事方式是最简单的。如果您担心 objectID 中的字符数会发生变化,我会使用 re.sub 并查找 '(' 和 ')' Find and remove a string starting and ending with a specific substring in python

【讨论】:

    【解决方案2】:

    您的回答似乎很好。您也可以按照here 的说明使用 eval 和 exec,但它比您的答案有更多的缺点。

    【讨论】:

      猜你喜欢
      • 2013-12-08
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 2020-03-13
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多