Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 写入CSV文件,其中值是一个字典,值需要和键位于同一行_Python_Python 3.x_Dictionary_Export To Csv - Fatal编程技术网

Python 写入CSV文件,其中值是一个字典,值需要和键位于同一行

Python 写入CSV文件,其中值是一个字典,值需要和键位于同一行,python,python-3.x,dictionary,export-to-csv,Python,Python 3.x,Dictionary,Export To Csv,我有一个字典输出,如下所示: {'2016-07': {'open': 2, 'closed': 14}, '2016-12': {'open': 14, 'closed': 37}} 2016-07, 2, 14 2016-12, 14, 37 我需要创建一个CSV文件,其中每一行如下所示: {'2016-07': {'open': 2, 'closed': 14}, '2016-12': {'open': 14, 'closed': 37}} 2016-07, 2, 14 2016-1

我有一个字典输出,如下所示:

{'2016-07': {'open': 2, 'closed': 14}, '2016-12': {'open': 14, 'closed': 37}}
2016-07, 2, 14
2016-12, 14, 37
我需要创建一个CSV文件,其中每一行如下所示:

{'2016-07': {'open': 2, 'closed': 14}, '2016-12': {'open': 14, 'closed': 37}}
2016-07, 2, 14
2016-12, 14, 37
以下是我对CSV的写入方法:

def send_to_csv():
    values = sort_by_year_month()
    with open('Issues_by_month.csv', 'w') as csv_file:
        file_writer = csv.writer(csv_file)
        file_writer.writerow(['Month',
                              'Opened Issues',
                              'Closed Issues',
                              ])
        for key, value in values.items():
            file_writer.writerow([key, value])

我想我只需要迭代该值,然后写出它们,但不确定。

要确保对日期进行排序,请尝试迭代它们的排序值:

for key in sorted(values.keys()):
    d = values[key]
    file_writer.writerow([key, d.get('open'), d.get('closed')])
试试这个:

import csv

data = {
    '2016-07': {'open': 2, 'closed': 14},
    '2016-12': {'open': 14, 'closed': 37}
}

with open('output.csv', 'w') as csv_file:
    writer = csv.writer(csv_file)
    writer.writerow(['Month',
                     'Opened Issues',
                     'Closed Issues'])
    # Get the date
    for date in sorted(data):
        row = [date]
        # Append each value to the row
        for key, value in data[date].items():
            row.append(value)
        writer.writerow(row)
output.csv

Month,Opened Issues,Closed Issues
2016-07,2,14
2016-12,14,37

试穿一下

,这样上述功能几乎可以正常工作。输出为:
2015-07,打开,关闭
当我需要打开中的值时,不要关闭键
对于键,值中的值。项():打开,关闭=值。值()
@Deusdeorum不完全。。。键可能不是按日期升序排列的。@Alexander true,我只是假设它们是..但您的输出仍然是错误的,因为它将是2017-07打开-关闭