python对象列表转换为字典_python – 将csv.DictReader对象转换为字典列表...
import csv
with open("in.csv") as csvfile:
reader = csv.DictReader(csvfile,delimiter=" ")
print(list(reader))
[{'first_name': 'Baked', 'last_name': 'Beans'}, {'first_name': 'Lovely', 'last_name': 'Spam'}, {'first_name': 'Wonderful', 'last_name': 'Spam'}]
如果分隔符實際上不是a,則需要指定“”或其他任何內容.
只是為了清除任何混淆,代碼也適用于python3.6,唯一的區別是使用DictReader默認情況下給出Orderdicts:
In [1]: import csv
...: with open("in.csv") as csvfile:
...: reader = csv.DictReader(csvfile, delimiter=" ")
...: print(list(reader))
...:
[OrderedDict([('first_name', 'Baked'), ('last_name', 'Beans')]), OrderedDict([('first_name', 'Lovely'), ('last_name', 'Spam')]), OrderedDict([('first_name', 'Wonderful'), ('last_name', 'Spam')])]
您可以完全相同地訪問密鑰,OrderedDict只保留密鑰插入順序:
In [2]: import csv
...: with open("in.csv") as csvfile:
...: reader = csv.DictReader(csvfile, delimiter=" ")
...: for dct in reader:
...: print(f"{dct['first_name']} {dct['last_name']}")
...:
...:
Baked Beans
Lovely Spam
Wonderful Spam
哪個py3.6實際上也是如此,所以如果由于某種原因你真的想要一個字典:
In [5]: import csv
...: with open("in.csv") as csvfile:
...: reader = csv.DictReader(csvfile, delimiter=" ")
...: for dct in map(dict, reader):
...: print(dct)
...: print(f"{dct['first_name']} {dct['last_name']}")
...:
...:
{'first_name': 'Baked', 'last_name': 'Beans'}
Baked Beans
{'first_name': 'Lovely', 'last_name': 'Spam'}
Lovely Spam
{'first_name': 'Wonderful', 'last_name': 'Spam'}
Wonderful Spam
在py3.6中插入時的訂購保留是一個實現細節,可能會改變,但如果我們足夠多的人使用它,它可能只需要保持:)
總結
以上是生活随笔為你收集整理的python对象列表转换为字典_python – 将csv.DictReader对象转换为字典列表...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下c语言http服务器_服务器
- 下一篇: ie传递给系统调用的数据区域太小_【Li