【问题标题】:Several values in a nested json dictionary/string in PythonPython中嵌套json字典/字符串中的几个值
【发布时间】:2016-11-04 13:44:31
【问题描述】:

我正在尝试构建一个在嵌套字典中保存多组坐标的 json 文件。这些应该是 json 字符串的框架,它们将成为 Node-Red 中节点中的变量,然后被 python 脚本使用,这里是字符串的一个示例:

koordinatstring = {
    "Coordinates":
    {
        "AllCoordinates":
        {
            "FirstCordinates":
            {
                "X": "1",
                "Y": "1"
            }
            "SecondCordinates":
            {
                "X": "2",
                "Y": "2"
            }
        }
    }
}

这不起作用。然而,当只查看一组变量时,这种结构是有效的。

koordinatstring = {
    "Coordinates":
    {
        "AllCoordinates":
        {
            "FirstCordinates":
            {
                "X": "1",
                "Y": "1"
            }
        }
    }
}

我的问题是,当我在 Node-Red 中使用它们时,我应该如何将格式为第一个示例的字符串实际接受这两个值?

【问题讨论】:

  • 您是否在“secondcordinates”之前缺少逗号?你应该先检查jsonlint.com 或类似的东西

标签: python json dictionary node-red


【解决方案1】:

"FirstCordinates" 块之后添加一个逗号,如下所示:

"FirstCordinates":
{
    "X": "1",
    "Y": "1"
},

进一步说明: 在 Python 中,您可以像这样声明字典:

my_dict = { "key1": "value1" }

如果您有多个键/值对,请使用逗号分隔它们。

my_dict = { 
    "key1": "value1",
    "key2": "value2" 
}

除了将字符串"value1" 作为key1 的值之外,它还可以是另一个字典!

my_dict = { 
    "key1": 
    {
        "subkey1": "subvalue1"
    },
    "key2": "value2" 
}

但总是,在一个键/值对之后,如果另一个键/对跟随它,则必须有逗号(如果它是最后一个,则不需要逗号,但它不会造成伤害)。

值可以是数字、列表或其他类型,而不是将字符串或字典作为值(如我们现在所示)。

【讨论】:

  • 工作了,谢谢。您是否有任何正确解释其语法的指南或视频提示?我在寻找好的文档方面遇到了很多问题。我的大部分实验都是通过复制示例和反复试验来完成的。
  • 我已经更新了解释,希望你现在明白了。
猜你喜欢
  • 2018-05-31
  • 2012-12-23
  • 2021-01-11
  • 2018-10-18
  • 1970-01-01
  • 2016-01-07
  • 1970-01-01
  • 2018-01-29
  • 1970-01-01
相关资源
最近更新 更多