将包含字符串和字典的列表写入csv fi

2024-09-27 07:26:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表,在列表的第一个元素中有字符串,在第二个元素中有一个字典,它有一些标志和相关的计数,如何用python将它写入csv文件?在

清单如下

['(RenderThread)', 
  Counter({'flags=4': 752, 'flags=40': 299, 'flags=10004': 283,
           'flags=80': 203, 'flags=90002': 36, 'flags=10080': 31, 
           'flags=100': 23, 'flags=10040': 14, 'flags=10100': 9})]
<type 'list'>

我希望输出如下

^{pr2}$

这是我的代码片段

with open(outputcsv,'wb') as outcsv:
    writer = csv.writer(outcsv,delimiter=',')
    for x in threads:
        writer.writerows([x.split(',')])
        w = csv.DictWriter(outcsv,data1)
        w.writerow(counter1)
        writer.writerows('\n')

其中data1=[thr1,counter1]


Tags: 文件csv字符串元素列表字典标志writer
1条回答
网友
1楼 · 发布于 2024-09-27 07:26:18

我想猜测一下你的数据是什么样子的,但是我认为你可以将列表中的两个项目组合成一个dict,然后使用DictWriter来编写整个内容。有几个奇怪的地方,包括我对数据列表的猜测,以及即使在输出中显示了一堆空格填充,也需要逗号分隔符。工作实例确实有助于解决这些问题。在

import csv

# example input
data = ['(RenderThread)', {'flags=4': 752, 'flags=40': 299}]

# presumably its one of many in an outer list
threads = [data]

def render_thread_iter(threads):
    """Given an interator that emits [RenderThread, FlagsDict] lists,
    iterate dicts where render thread is added to flags dict.
    """
    for data in threads:
        d = {'RenderThread':data[0]}
        d.update(data[1])
        yield d

with open('output.csv','w', newline='') as outcsv:
    # create list of header fields
    fieldnames = ['RenderThread'] + sorted(threads[0][1].keys())
    writer = csv.DictWriter(outcsv, delimiter=',', fieldnames=fieldnames)
    # write rendered dicts
    writer.writeheader()
    writer.writerows(render_thread_iter(threads))

相关问题 更多 >

    热门问题