【问题标题】:Conversion: Array to Json automatically转换:数组自动转Json
【发布时间】:2020-08-18 13:17:28
【问题描述】:

如何让这个脚本自动连接数组?这样就不必传递索引,例如:arr[0] ... arr[n]。其中val1, val2 ... val(n),以递增方式自动分配,例如:val1, val2, val3 ...等。这样数组就可以有N个值,全部自动转成Json

import json

arr = ['MyValue1', 'MyValue2']
list = [{"labels": {"val1": arr[0], "val2": arr[1]}}]

print(json.dumps(list))

输出:

{
    "labels": {
        "val1": "MyValue1",
        "val2": "MyValue2"
    }
}

【问题讨论】:

  • 这似乎不是一个好主意。为什么不将标签存储为列表?
  • 想法是以json格式存储在数据库列中
  • 提出不同的建议?
  • 为什么不使用这个 JSON 输出呢? {"labels": ["MyValue1", "MyValue2"]}
  • {"labels": ["MyValue1", "MyValue2", "MyValue3"]} 当然。或者一般来说:json.dumps({"labels": arr}).

标签: python arrays json


【解决方案1】:

你可以使用字典理解:

import json

arr = ['MyValue1', 'MyValue2']
list = [{"labels": {"val%d"%(i+1):e for i,e in enumerate(arr)}}]

print(json.dumps(list))

或者:

import json

arr = ['MyValue1', 'MyValue2']
list = {"labels": arr}

print(json.dumps(list))

【讨论】:

  • 完美,我只是想要一种高性能的方式来做到这一点,谢谢!
  • 没问题。另一种方法是执行类似这样的操作 list = [{"labels": arr}] 您可以在 json 中有有序列表,因此不需要新的字典。当然,任何一个选项都可以
  • 无论如何,您能否将另一个选项附加到您的答案中?我们留给未来有同样疑问的人来决定他们认为哪种方法最适合他们的问题
  • @LuisHenrique 字典理解是一个额外的操作和一个额外的数据结构,所以我想说最好只在字典中包含列表。你也可以像 Thomas 在他们的评论中建议的那样去掉方括号,因为你可以用 json 转储字典
  • @LuisHenrique 我会做的
猜你喜欢
  • 2021-09-01
  • 2019-05-18
  • 1970-01-01
  • 2022-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多