簡體   English   中英

有字典的清單需要在python中寫入csv文件

[英]Have a list of dicts need to write csv file in python

我需要將python中的字典列表輸出到csv文件中。 但是我想按文件名拆分它們。 我有一個看起來像這樣的字典列表:

{'Filename': 'F:\\Desktop\\Metadata\informationtechnologies1.pdf',
  'DESCRIPTION': [u'This is a test sentence.'],
  'NAME': [u'This is a test name'],
  'PERIOD': [],
  'INFO2': [u'TEST1',
   u'TEST2',
   u'TEST3',
   u'TEST4',
   u'TEST5',],
  'INFO': [u'TEST6',
   u'TEST7',
   u'TEST8',
   u'TEST9',
   u'TEST10',
   u'TEST11',]},
 {'Filename': 'F:\\Desktop\informationtechnologies.pdf',

我需要精確地打印它們在單列中的顯示方式,並將結果顯示在新行中。 最好在每個文件名后加一行以分隔所有結果。 例如:

Filename: informationtechnologies1.pdf DESCRIPTION: This is a sentence INFO2: TEST2 TEST3 TEST4 TEST5

Filename:informationtechnologies.pdf

我嘗試了以下代碼,但是將每個列表都放在一列中(一列可以在info列中包含20條數據的列表):

df = DataFrame.from_dict(results)
df.to_csv("F:\Desktop/meta.csv",encoding='utf-8')

我需要在第1列中對所有數據進行迭代,因此,如果字典中有一個列表,我希望該列表中的每個項目都在新行上打印

您顯示的不是csv文件,而是純文本文件。

假設您的要求是:

  • 如果目錄包含密鑰Filename在第一行打印密鑰,冒號,空格和值
  • 對於目錄中的所有其他鍵,值項,首先在鍵上打印一行,后跟冒號,然后假定該值是unicode字符串列表,在一行上打印編碼為utf8的列表的每個值; 如果該值不是列表,則將其轉換為unicode並打印為utf8
  • 在每個目錄后打印一個空行

我將使用顯式循環和測試,因為我不知道有什么工具可以立即使用:

with open("F:\\Desktop/meta.csv", "w") as fd:
    for d in results:
            if 'Filename' in d:
                dummy = fd.write('Filename: ' + d['Filename'] + '\n')
            for k, l in d.iteritems():
                if k != 'Filename':
                    dummy = fd.write(k + ':\n')
                    if isinstance(l, list):
                        for item in l:
                            dummy = fd.write(item.encode('utf8') + '\n')
                    else:
                        dummy = fd.write(unicode(l).encode('utf8') + '\n')
            dummy = fd.write('\n')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM