【问题标题】:Array to array of objects in python数组到python中的对象数组
【发布时间】:2023-01-24 20:00:47
【问题描述】:

我可以在 python 中显示一个数组,但我需要将它从 ['red', 'blue'] 转换为 [{color: 'red'},{color: 'blue'}] 但我是 Python 的新手,我不知道该怎么做。这就是我所拥有的:

import json

colors = '["red", "blue"]'
data  = json.loads(colors)
print(data)

谢谢

【问题讨论】:

  • 您是否尝试为此编写任何代码?你知道列表理解吗?
  • 如果您已经知道如何将'["red", "blue"]' 转换为["red", "blue"],为什么它仍然在问题中?你的问题只是“如何将列表转换为字典列表”
  • 我的意思是,你用 json 标记了问题。您是否真的需要与 json 相关的帮助?看起来不像

标签: python arrays json object


【解决方案1】:

您可以将列表转换为字典列表,如下所示:

colors = ["red", "blue"]
colors = [{'color': c} for c in colors]
>>> [{'color': 'red'}, {'color': 'blue'}]

但在你的情况下,colors 变量是一个字符串,你可以使用这个

colors = eval(colors)

但通常我不会鼓励您在代码中使用 eval ,除非您确定字符串包含什么。简而言之,eval 接受一个字符串并将其解释为 python 代码。

【讨论】:

  • “但通常我不会鼓励您在代码中使用 eval”- 那你为什么要? OP 已经在使用 json 并将变量 data 作为字符串列表
【解决方案2】:
a = ['red', 'blue']
b = []
for i in a:
    b.append({'color': i})
print(b)

【讨论】:

    【解决方案3】:

    您错误地使用了 loads 方法。在这里您可以阅读有关此方法的信息。 https://www.geeksforgeeks.org/json-loads-in-python/

    【讨论】:

    • 他们使用loads 的方式有什么问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 2017-06-28
    相关资源
    最近更新 更多