我对编码特别是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
答案 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')