如何使用Python将存储Dict的类型从行更改为列

如何使用Python将存储Dict的类型从行更改为列,python,python-3.x,csv,dictionary,Python,Python 3.x,Csv,Dictionary,我有一个简单的问题。我正在使用此代码将词典存储在csv文件中 data = dataA,dataB, dataC, dataD w = csv.writer(open("test.csv", "w")) for x in data: for field, possible_values in x.items(): print(field, possible_values) w.writerow([field, possible_values]) 我在cs

我有一个简单的问题。我正在使用此代码将词典存储在csv文件中

data = dataA,dataB, dataC, dataD
w = csv.writer(open("test.csv", "w"))
for x in data:
    for field, possible_values in x.items():
        print(field, possible_values)
        w.writerow([field, possible_values])
我在csv中获得的存储值存储在行中,但我希望它们存储为列

我在csv中的实际结果:

name: Alex
Old: 22
我在csv中的目标应该是:

Name  Old
Alex  22
我怎样才能改变它

更新1:

线索是x.keys()中的键的
。经过数小时的努力工作,我更新了代码,代码比以前运行得更好,但在存储所有值和键x.keys()和y.values()的末尾,我还有一个小问题需要换行。csv文件中的我的词典

 if not os.path.isfile(filename):
    outfile = open(filename, "w")
    #outfile.write("#Sequence,,,,") 
    for x in data:
        print(x.keys())
        for key in x.keys():
            print(key)
            store_key= key + ","
            outfile = open(filename, "a")
            outfile.write(store_key)
            outfile.close()


    for y in data:
        print(y.values())
        for value in y.values():
            print(value)
            store_value = value + ","    
            outfile = open(filename, "a")
            outfile.write(store_value)
            outfile.close
现在我需要在键和值之间用“\n”分隔,以获得键行下的值


您可以先编写一行字典键,然后编写一行值

for x in data:
    w.writerow(x.keys())
    w.writerow(x.values())

您可以先编写一行字典键,然后编写一行值

for x in data:
    w.writerow(x.keys())
    w.writerow(x.values())

如果您试图访问和写入文件,这将减慢代码的速度。将输出文本保留在字符串中,删除最后一个逗号(,),并在字符串末尾添加换行符。它将加快您的代码,并将添加新行。您也可以对第二个for循环执行相同的操作


如果您试图访问和写入文件,这将减慢代码的速度。将输出文本保留在字符串中,删除最后一个逗号(,),并在字符串末尾添加换行符。它将加快您的代码,并将添加新行。您也可以对第二个for循环执行相同的操作


发布多个词典的预期输出发布多个词典的预期输出谢谢回答。你的提示有效,但我在一列中列出了所有实体。我的目标是,下一个实体应该写在下一列中。我的目标是:叫老亚历克斯22谢谢你的回答。你的提示有效,但我在一列中列出了所有实体。我的目标是,下一个实体应该写在下一列中。Name Alex Old 22----------Name Old Alex 22我的目标是:Name Old Alex 22我无法使用该函数,因为我需要在csv文件yithout[]和“”中为数据中的x存储字典列表:outfile=open(filename,“a”)outfile.write(str(x.keys())outfile.close()我现在遇到的问题是,我在csv文件中得到了字典的所有符号,因为我使用str()。当我不使用str()时,我得到一个错误,yrite参数必须是str而不是dic_keys@AhmyOhlin你能把你对
data=[{“name”:“Alex”,“age”:“22”,“sex”:“male”},{“name”:“Alice”,“age”:“19”,的期望结果添加到你的问题中吗sex:“female”}]
如果你坚持第一个代码并使用
w.writerow(x.keys())
就像@Dustin所说的,你不必使用
str()
。使用我之前评论的
数据
。你会看到,它是有效的。谢谢你的回答@Alperen。我如何才能在for循环的dict的最后一个元素中添加一行新行?这很有效。我得到了我想要的。但说实话,我感觉很糟糕,因为我真的不理解你的代码行+=key+,“line=line[:-1]+”\n“:你能解释一下第[:-1]行是什么意思吗?”。我想你们已经把我的dict的实体改成了list,并且你们每次都把它存储在一行中。如果我错了,请纠正我?我的问题是,-1是什么意思?你写了als评论“删除最后一个字符”,哪个字符将被删除?感谢您的帮助,如果您能让我理解代码,我将非常高兴。我无法使用该函数,因为我需要在csv文件yithout[]和“”中为数据中的x存储字典列表:outfile=open(filename,“a”)outfile.write(str(x.keys())outfile.close()我现在遇到的问题是,我在csv文件中得到了字典的所有符号,因为我使用str()。当我不使用str()时,我得到一个错误,yrite参数必须是str而不是dic_keys@AhmyOhlin你能把你对
data=[{“name”:“Alex”,“age”:“22”,“sex”:“male”},{“name”:“Alice”,“age”:“19”,的期望结果添加到你的问题中吗sex:“female”}]
如果你坚持第一个代码并使用
w.writerow(x.keys())
就像@Dustin所说的,你不必使用
str()
。使用我之前评论的
数据
。你会看到,它是有效的。谢谢你的回答@Alperen。我如何才能在for循环的dict的最后一个元素中添加一行新行?这很有效。我得到了我想要的。但说实话,我感觉很糟糕,因为我真的不理解你的代码行+=key+,“line=line[:-1]+”\n“:你能解释一下第[:-1]行是什么意思吗?”。我想你们已经把我的dict的实体改成了list,并且你们每次都把它存储在一行中。如果我错了,请纠正我?我的问题是,-1是什么意思?你写了als评论“删除最后一个字符”,哪个字符将被删除?谢谢你的帮助,如果你能让我理解代码,我会很高兴的。