如何在Python中将列表转换为字典?

如何在Python中将列表转换为字典?,python,list,dictionary,Python,List,Dictionary,所以我有这个 [{“what”:“Drink”,“allDay”:true,“id”:12,“when”:“2020-05-13”,“end”:“2020-05-13”}] 我正试图打印“what”的值,但在将此列表转换为字典时遇到问题。我只需要把支架取下来。我该怎么做?谢谢。:) li=[{“什么”:“喝”,“整天”:真,“id”:12,“何时”:“2020-05-13”,“结束”:“2020-05-13”}] di=dict(li[0]) di['when'] 从列表中提取词典: lst =

所以我有这个
[{“what”:“Drink”,“allDay”:true,“id”:12,“when”:“2020-05-13”,“end”:“2020-05-13”}]
我正试图打印“what”的值,但在将此列表转换为字典时遇到问题。我只需要把支架取下来。我该怎么做?谢谢。:)

li=[{“什么”:“喝”,“整天”:真,“id”:12,“何时”:“2020-05-13”,“结束”:“2020-05-13”}]
di=dict(li[0])
di['when']

从列表中提取词典:

lst = [{"what": "Drink", "allDay": True, "id": 12, "when": "2020-05-13", "end": "2020-05-13"}]
dct = lst[0]
print(dct['what'])
your_desired_dict = data[0]
print(your_desired_dict['what'])

你所拥有的是一份口述清单。所以,你可以这样做

  • 如果
    values
    是列表变量的名称,则
    values[i]
    允许您访问存储在索引
    i
    中的词典
  • 当键不存在时,
    dict.get(键,无)
    将返回值或无。这样可以避免在缺少某个字段时出现不必要的错误
#使用dict.get(键,“不匹配时的值”)
#比直接调用dict[key]更安全
#但是,这取决于您的设计/逻辑/需求。
值[0]。获取('what',无)
观察 由于示例数据中有
“allDay”:true
,因此我假设您很可能是试图从JSON文件中读取此内容。如果是这种情况,并且您正在使用python中的
json
库,那么使用
json.load(),json.load()
就可以很容易地解决这个问题

虚拟数据 请注意,您有一个布尔值(对于
“全天”
)为
true
>Python期望
true
,大写为T

值=[
{
“什么”:“喝”,
“全天”:没错,
“id”:12,
“何时”:“2020-05-13”,
“结束”:“2020-05-13”
},
{
“什么”:“吃”,
“全天”:没错,
“id”:14,
“何时”:“2020-05-14”,
“结束”:“2020-05-14”
}
]

您得到的是列表中的词典。因此,您的dict是列表的第一个元素:

lst = [{"what": "Drink", "allDay": True, "id": 12, "when": "2020-05-13", "end": "2020-05-13"}]
dct = lst[0]
print(dct['what'])
your_desired_dict = data[0]
print(your_desired_dict['what'])
或直接:

print(data[0]['what'])

d=l[0]
。好了,
d
现在是一个dict。这是一个包含字典的列表。只需访问列表的第一个元素即可访问字典。
dict()
完全是多余的…非常感谢。但是,我得到这样一个错误:“str”对象没有属性“get”。问题是什么?“比直接调用…”更安全-这取决于代码应该做什么。如果该值必须存在,如果不存在则为错误,则
[key]
更“安全”,因为它会在错误中终止,而不是静默继续。无论哪种方式,
get
的第二个
None
参数都是多余的。@RyanOh如果你遇到了这个错误,那就意味着
values[0]
(其中
values
是包含
dict
列表,如你的问题所示)返回的是
str
而不是
dict
,这意味着您提供的样本数据不是accurate@awarrier99哦,那么返回的值实际上是字符串,看起来像字典。我可能得检查一下。谢谢:)所以我意识到返回的值是一个字符串字典。因此,我使用了
json.loads()
将其转换为字典。然后我照@CypherX说的做了,它完全奏效了。非常感谢各位:)