如何在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说的做了,它完全奏效了。非常感谢各位:)