如何编写具有多个键的字典,每个键具有多个值到 Python 中的 csv?
How to write a dictionary with multiple keys, each with multiple values to a csv in Python?
我有一本看起来像这样的字典...
cla_1results= {"Tom":[1,7,4],"Dunc":[3,9,4],"Jack":[1,3,5]}
我想把这本字典写成csv格式,格式如下
没有 post 图片的代表,但应该是这样的...
Tom, 1, 7, 4
Dunc 3, 9, 4
Jack 1, 3, 5
我试过的都没有用。我最近的努力如下,但我是 Python 和一般编程的真正初学者。
import csv
cla_1results= {"Tom":[1,7,4],"Dunc":[3,9,4],"Jack":[1,3,5]}
cla_2results = {"Jane":[1,7,4],"Lynda":[3,9,4],"Dave":[1,3,5]}
cla_3results = {"Gemma":[1,7,4],"Steve":[3,9,4],"Jay":[1,3,5]}
b = open ('test.csv','w')
a = csv.writer(b)
data = cla_1results= {"Tom":[1,7,4],"Dunc":[3,9,4],"Jack":[1,3,5]}
a.writerows(data)
b.close()
不幸的是,这只给了我:
T, o, m
D, u, n, c
J, a, c, k
等等
这应该可行,您只需要一个列表来生成 csv 文件,因此它也可以即时生成。
import csv
cla_1results= {"Tom":[1,7,4],"Dunc":[3,9,4],"Jack":[1,3,5]}
with open('test.csv', 'wb') as csvfile:
writer = csv.writer(csvfile, delimiter=',')
for key,value in cla_1results.iteritems():
writer.writerow([key]+value)
您可以使用 DataFrame.from_dict()
classmethod to convert dict
to DataFrame and then can use to_csv
将数据帧转换为 csv。我用 header=False
去掉了 headers.
from pandas import DataFrame
cla_1results = {"Tom": [1, 7, 4], "Dunc": [3, 9, 4], "Jack": [1, 3, 5]}
df = DataFrame.from_dict(cla_1results, orient='index')
print(df.to_csv(header=False))
Dunc,3,9,4
Jack,1,3,5
Tom,1,7,4
尝试:
import csv
with open('test.csv', 'wb') as csvfile:
c = csv.writer(csvfile)
line = []
for key, value in cla.iteritems():
line.append(key)
for i in value:
line.append(i)
c.writerow(line)
data = {"Tom":[1,7,4],"Dunc":[3,9,4],"Jack":[1,3,5]}
with open('test.csv', 'w') as f:
for k, vals in data.items():
line = ','.join([k] + map(str, vals)) + '\n'
f.write(line)
多种方法之一:
import csv
cla_1results = {
"Tom": [1, 7, 4],
"Dunc": [3, 9, 4],
"Jack": [1, 3, 5]
}
with open("test.csv", 'w+') as file:
writer = csv.writer(file)
for name in cla_1results:
writer.writerow([name, ] + [i for i in cla_1results[name]])
我有一本看起来像这样的字典...
cla_1results= {"Tom":[1,7,4],"Dunc":[3,9,4],"Jack":[1,3,5]}
我想把这本字典写成csv格式,格式如下
没有 post 图片的代表,但应该是这样的...
Tom, 1, 7, 4
Dunc 3, 9, 4
Jack 1, 3, 5
我试过的都没有用。我最近的努力如下,但我是 Python 和一般编程的真正初学者。
import csv
cla_1results= {"Tom":[1,7,4],"Dunc":[3,9,4],"Jack":[1,3,5]}
cla_2results = {"Jane":[1,7,4],"Lynda":[3,9,4],"Dave":[1,3,5]}
cla_3results = {"Gemma":[1,7,4],"Steve":[3,9,4],"Jay":[1,3,5]}
b = open ('test.csv','w')
a = csv.writer(b)
data = cla_1results= {"Tom":[1,7,4],"Dunc":[3,9,4],"Jack":[1,3,5]}
a.writerows(data)
b.close()
不幸的是,这只给了我:
T, o, m
D, u, n, c
J, a, c, k
等等
这应该可行,您只需要一个列表来生成 csv 文件,因此它也可以即时生成。
import csv
cla_1results= {"Tom":[1,7,4],"Dunc":[3,9,4],"Jack":[1,3,5]}
with open('test.csv', 'wb') as csvfile:
writer = csv.writer(csvfile, delimiter=',')
for key,value in cla_1results.iteritems():
writer.writerow([key]+value)
您可以使用 DataFrame.from_dict()
classmethod to convert dict
to DataFrame and then can use to_csv
将数据帧转换为 csv。我用 header=False
去掉了 headers.
from pandas import DataFrame
cla_1results = {"Tom": [1, 7, 4], "Dunc": [3, 9, 4], "Jack": [1, 3, 5]}
df = DataFrame.from_dict(cla_1results, orient='index')
print(df.to_csv(header=False))
Dunc,3,9,4
Jack,1,3,5
Tom,1,7,4
尝试:
import csv
with open('test.csv', 'wb') as csvfile:
c = csv.writer(csvfile)
line = []
for key, value in cla.iteritems():
line.append(key)
for i in value:
line.append(i)
c.writerow(line)
data = {"Tom":[1,7,4],"Dunc":[3,9,4],"Jack":[1,3,5]}
with open('test.csv', 'w') as f:
for k, vals in data.items():
line = ','.join([k] + map(str, vals)) + '\n'
f.write(line)
多种方法之一:
import csv
cla_1results = {
"Tom": [1, 7, 4],
"Dunc": [3, 9, 4],
"Jack": [1, 3, 5]
}
with open("test.csv", 'w+') as file:
writer = csv.writer(file)
for name in cla_1results:
writer.writerow([name, ] + [i for i in cla_1results[name]])