繁体   English   中英

将字典写入 csv 文件

[英]Write a dictionary to csv file

我有一本字典,我想将它写入 csv 文件。 我将其转换为列表并尝试写入 csv 文件。 我得到了答案,但与我要求的格式不同。 这是我的代码

dic1 = {
    'Data': {
        'p_1': {
            'name': 'John', 
            'Interests': ['football', 'cricket']},
        'p_2': {
            'name': 'Smith', 
            'Interests': ['baseball', 'cricket']
                    }}}
import csv
import pandas
for k,v in dic1.items():
    val_list = []
    for k1, v1 in v.items():
        key = list(v1.keys())
        val = list(v1.values())
        val_list.append(val)

# wite the data into the csv file
with open('names.csv', 'w') as f:
    write = csv.writer(f)
    write.writerow(key)
    write.writerows(val_list)
    print('The file has been written')

# read the csv file with pandas
res = pandas.read_csv('names.csv')
print(res)

我以这种方式得到了输出:

    name                Interests
0   John  ['football', 'cricket']
1  Smith  ['baseball', 'cricket']

但要求的格式是:

    name                Interests
0   John        football, cricket
1  Smith        baseball, cricket

我怎样才能做到这一点?

尝试:

df=pandas.DataFrame({y:z for k,v in dic1.items() for y,z in v.items()}.values())
#The above code doing the same thing via dict comprehension,here dic1 is your dictionary
df['Interests']=df['Interests'].str.join(',')
df.to_csv('names.csv',index=False)

您可以修改该行:

    write.writerows(val_list)

进入:

    write.writerows(' '.join(map(str, val_list))

请记住,这样做不会使以下人员的生活:

res = pandas.read_csv('names.csv')

任何更容易。 它可能不会像以前那样阅读内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM