python 怎么转换为字典

python 怎么转换为字典

作者:Joshua Lee发布时间:2026-03-25阅读时长:0 分钟阅读次数:3

用户关注问题

Q
如何将字符串转换成Python字典?

我有一个格式正确的字符串,怎样能将它转换成Python中的字典对象?

A

使用json.loads或ast.literal_eval转换字符串为字典

可以使用json模块中的json.loads()方法,将符合JSON格式的字符串转换为字典。如果字符串不完全符合JSON格式,可以尝试用ast.literal_eval()方法安全地解析字符串为字典。示例:

import json
json_str = '{"key": "value"}'
dict_obj = json.loads(json_str)

或者

import ast
str_repr = "{'key': 'value'}"
dict_obj = ast.literal_eval(str_repr)

Q
如何从Python对象生成字典?

我想将一个Python对象转换为字典格式,应该怎么做?

A

使用对象的__dict__属性或者手动转换

对于自定义对象,可以通过访问其__dict__属性直接获取属性字典。如果对象较复杂,可以定义一个方法来返回其属性组成的字典。示例:

class Person:
def init(self, name, age):
self.name = name
self.age = age

p = Person('Alice', 30)
obj_dict = p.dict

这样就得到了包含对象属性的字典。

Q
如何将CSV或列表数据转换为Python字典?

我有CSV格式或者列表数据,想转换成字典格式,有什么简便的方式?

A

利用csv模块或字典推导式进行转换

可以使用csv.DictReader读取CSV文件,每行数据会自动转换为字典。如果是列表数据,可以用字典推导式或zip函数将对应键值对转换为字典。示例:

import csv
with open('data.csv', newline='') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(dict(row))

或者

keys = ['name', 'age']
values = ['Bob', 25]
data_dict = dict(zip(keys, values))