试图将有序字典写入csv,但结果空白

时间:2018-07-17 13:50:25

标签: python csv dictionary export-to-csv ordereddictionary

我对编码特别是Python非常陌生。我正在尝试将有序词典(至少,我认为它是有序词典)转换为csv文件。当我这样做时,它确实创建了csv文件,但它完全空白,除了A1中的“”。

import sys
import csv
import json
import requests

def lookup(Name1, Name2):
    url = '<url for nested dictionary>'
    response = requests.get(url)
    data = json.loads(response.text)
    results = data['results']['officers']
    for a in results:
        print( a['officer']['name'],a['officer']['company']['company_number'])


def from_file(filename):
    results = []
    with open(filename, 'r') as csvfile:
        reader = csv.DictReader(csvfile)
        for row in reader:
            result = lookup(row['Name1'], row['Name2'])
            results.append(result)
    return results

with open('LabourDonorComp.csv', mode='w') as donor_file:
    donor_writer = csv.writer(donor_file, delimiter=' ', quoting=csv.QUOTE_ALL)

    donor_writer.writerow(from_file(sys.argv[1]))

我输入到终端的代码是

python3 BestFile3.py LabourDonorsP.csv

2 个答案:

答案 0 :(得分:1)

您的lookup()函数返回None(更确切地说:它没有显式返回任何内容,因此它隐式返回了None。因此(无双关语),{{1 }}返回from_files的列表。因此,要做的第一件事就是修复None,使其返回期望值,您可能还会遇到其他一些问题,但这是另一个问题。

答案 1 :(得分:-3)

尝试为此使用pandas库。您可以创建一个DataFrame对象,然后将其导出到.csv.

import pandas as pd
df = pd.DataFrame(ordered_dict)
df.to_csv('file.csv')