将Python字典合并为字符串csv

时间:2019-02-08 15:06:22

标签: python dictionary

我在这里有一个字典:

dict = {'AB': 1, 'AE': '0', 'CC': '3'}

我正在尝试将该词典转换为确切的字符串格式:

AB1,AE0,CC3

我目前正在尝试:

string = ",".join(("{},{}".format(*i) for i in dict.items()))

但是我的输出是这样的:

AB,1,AE,0,CC,3

哪怕只是一点点。

有人知道将字典正确格式化为字符串的方法吗?

谢谢

5 个答案:

答案 0 :(得分:3)

我们在这里(只需删除逗号):

d = {'AB': 1, 'AE': '0', 'CC': '3'}

output = ",".join(["{}{}".format(key, value) for key, value in d.items()])
#                   ^^^^
print(output)

这产生

AB1,AE0,CC3

或者使用原始的拆包方法:

output = ",".join(["{}{}".format(*x) for x in d.items()])

此外,请不要在内置对象(字典,列表,元组等)之后命名变量。

答案 1 :(得分:1)

代码:

setOrientation

输出:

dict = {'AB': 1, 'AE': '0', 'CC': '3'}
string=','.join([i+str(dict[i]) for i in dict])
print(string)

答案 2 :(得分:0)

想法是遍历字典的每个元素,然后将其键和值连接在一起。最后,将此串联值附加到列表中。

d = {'AB': 1, 'AE': '0', 'CC': '3'}

#initialize an empty list
l=[]
for i in d:
    l.append(str(i)+str(d[i]))

获得此列表后,只需使用join()函数将其转换为字符串,其元素之间以逗号分隔即可。

out = ','.join(l)
print(out)
   'AB1,AE0,CC3' 

答案 3 :(得分:0)

更实用的解决方案:

# don't shadow `dict`
d = {'AB': 1, 'AE': '0', 'CC': '3'}

# `starmap` flattens argument to a function
# needed for `str.format`
from itertools import starmap

# build parts from dictionary items
parts = starmap('{}{}'.format, d.items())

# build end result from parts
result = ','.join(parts)

如果您想要一个可靠的解决方案,则应使用csv模块并查看DictWriter

答案 4 :(得分:0)

如果使用的是Python 3,则可以使用所谓的f字符串。

d = {'AB': 1, 'AE': '0', 'CC': '3'}
out = ','.join([f'{i}{d[i]}' for i in d.keys()])
print(out)

输出:

AB1,AE0,CC3

如果您想了解有关f弦的更多信息,请参见此tutorial。请记住,此解决方案仅适用于Python 3.3和更高版本。