【问题标题】:Python Deep Destruction Like JavaScript and assingment to new ObjectPython Deep Destruction Like JavaScript and assignment to new Object
【发布时间】:2021-09-01 14:55:25
【问题描述】:
let newJson = {};

({
    "foo": {
        "name": newJson.FirstName,
        "height": newJson.RealHeight
    }
} =

{
    "foo": {
        "name": "Felipe",
        "height": "55"
    }
});
console.log({newJson})

如我们所知,上面的代码将在 JS 中返回以下输出:

{newJson :{FirstName: "Felipe", RealHeight: "55"}}

我想知道在 PYTHON 中是否有一个 Lib 或一种方法

【问题讨论】:

  • 查看json 标准库。查找文档here
  • 您的意思是“破坏性”,而不是“破坏性”。

标签: javascript python object destruction


【解决方案1】:

搜索“Python 中的解构赋值”会产生结果。

您可以使用PEP 448 中定义的原生“元组解包”:

json_data = {
    "foo": {
        "name": "Felipe",
        "height": "55"
    }
}

first_name, real_height = json_data["foo"]["name"], json_data["foo"]["height"]

print(first_name, real_height)
# Felipe 55

或者您可以使用基于Python Data Model 的更接近的东西(灵感来自this answer):

from operator import itemgetter

json_data = {
    "foo": {
        "name": "Felipe",
        "height": "55"
    }
}

first_name, real_height = itemgetter("name", "height")(json_data["foo"])

print(first_name, real_height)
# Felipe 55

【讨论】:

  • 我需要的东西可能很深,元组解包我知道但不是全部
  • @FelipeAugustoGonalvesBasili Python 不允许使用当前的解析器。
猜你喜欢
  • 2022-12-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-02
  • 1970-01-01
  • 2021-02-18
  • 2017-03-30
  • 2012-03-10
  • 1970-01-01
相关资源
最近更新 更多