【问题标题】:How to create this type of json如何创建这种类型的 json
【发布时间】:2020-01-10 00:18:58
【问题描述】:

我有一个像

这样的元组
mytuple = ('somevalue', 99999, 'jjj', 99)

从这个元组我想像 json 一样

{
"key1":'somevalue',
"key2":'99999,
"key3":'jjj',
"key4":99
}

键的数量不是恒定的,它们可以改变,并且键的值和数量等于对象的数量

我试过了

data = {}
        for i in range(0,maxLen):
            key = keydata[0][i]
            value = valuedata[0][i]
            data[key] = data[value]

我在创建 json 时遇到关键错误

【问题讨论】:

  • 请出示keydatavaluedata
  • 请显示您的堆栈跟踪
  • 你的意思是data[key] = value
  • 请修正代码的缩进。
  • 您的 JSON 不是有效的 JSON,因为 JSON 字符串使用双引号,请参阅 json.org

标签: json django python-3.x


【解决方案1】:

您可以使用enumerate(..) 获取索引。因此,我们可以构造一个像这样的字典:

{ 'key{}'.format(i): v for i, v in enumerate(mytuple, 1) }

然后我们可以使用json.dumps 来检索 JSON blob:

>>> json.dumps({ 'key{}'.format(i): v for i, v in enumerate(mytuple, 1) }) 
'{"key1": "somevalue", "key2": 99999, "key3": "jjj", "key4": 99}'

请注意,您提供的 JSON 不是有效的 JSON,因为 JSON 字符串 i 用双引号括起来(所以 "…"),而且您的 99999 在前面有一个单引号(')。例如,您可以使用 jsonlint 之类的服务来验证这一点。例如,一个有效的 JSON blob:

{
    "key1": "somevalue",
    "key2": 99999,
    "key3": "jjj",
    "key4": 99
}

这与此处构造的相同,除了格式不同,但也就是说,例如,当您获取数据时,只有开销。

【讨论】:

  • 仍然没有得到预期的结果。我有列表,在该列表中我有元组,其中包含我提供的有问题的键和值元组
  • @alhkjsd:那你只需要对上面做一个函子映射,但由于你没有提供真实数据的格式,恐怕我帮不了你更多:)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多