如何从python字典中选择一些值并将它们放入csv

如何从python字典中选择一些值并将它们放入csv,python,csv,dictionary,Python,Csv,Dictionary,首先,我试图在谷歌上搜索答案,但由于我是python新手,所以很难找到好的答案 我想把一个字典中的一些值转换成csv格式。对于所有值来说,这听起来都很简单: import csv import sys mydictionary = {"one" : "1", "two" : 2, "three" : "3"} w = csv.writer(sys.stderr) w.writerow(mydictionary.values()) 但是如果我只想显示“一”和“三”值呢?。下一个问题是,为什么数字

首先,我试图在谷歌上搜索答案,但由于我是python新手,所以很难找到好的答案

我想把一个字典中的一些值转换成csv格式。对于所有值来说,这听起来都很简单:

import csv
import sys
mydictionary = {"one" : "1", "two" : 2, "three" : "3"}
w = csv.writer(sys.stderr)
w.writerow(mydictionary.values())

但是如果我只想显示“一”和“三”值呢?。下一个问题是,为什么数字以“3,2,1”的顺序显示,而不是以“1,2,3”的顺序显示?

您可以通过以下操作创建子字典:

subkeys = ["one", "three"]
subdict = {x: mydictionary[x] for x in mydictionary if x in subkeys}

print subdict

{'one': '1', 'three': '3'}

在Python中,字典不是有序结构,因此输入键的顺序不一定与检索键的顺序有任何关系。如果在此期间对字典应用了操作,则可能是相同的、相反的或其他内容。看看您是否真的需要订单保持不变。

您最好使用;它允许您指定列的顺序,并仅选择某些键:

mydictionary = {"one" : "1", "two" : 2, "three" : "3"}
w = csv.DictWriter(sys.stderr, fields=('one', 'three'), extrasaction='ignore')
w.writerow(mydictionary)

在使用顺序很重要的词典时,可以使用and而不是普通的
dict

>>> mydictionary = collections.OrderedDict()
>>> mydictionary["one"]=1
>>> mydictionary["two"]=2
>>> mydictionary["three"]=3
>>> mydictionary
OrderedDict([('one', 1), ('two', 2), ('three', 3)])
可能的重复和相关:不幸的是,你在一篇帖子中问了两个问题;其中一个是复制品。另一个问题最好使用
csv.DictWriter()
而不是常规的writer来解决;看看这本书。