【发布时间】:2019-10-18 09:48:17
【问题描述】:
我正在尝试将字典列表导出到 excel,这样 csv 文件中的每个变量都有一列,其中包含所有键的对应值。
我尝试导出一个字典字典,以及一个带有字典的列表列表,但它们似乎都不起作用。我该怎么办?
url_test = 'http://app.parlamento.pt/webutils/docs/doc.txt?path=6148523063446f764c324679626d56304c3239775a57356b595852684c3052685a47397a51574a6c636e5276637939535a576470633352764a544977516d6c765a334c446f575a705932387657456c4a535355794d45786c5a326c7a6247463064584a684c314a6c5a326c7a644739436157396e636d466d61574e7657456c4a53563971633239754c6e523464413d3d&fich=RegistoBiograficoXIII_json.txt&Inline=true'
r_test = requests.get(url_test)
mps = cont['RegistoBiografico']['RegistoBiograficoList']['pt_ar_wsgode_objectos_DadosRegistoBiograficoWeb']
result = {}
for j in mps:
ID = j['cadId']
Nome = j['cadNomeCompleto']
Sexo = j['cadSexo']
resultf = {'ID':ID, 'Nome':Nome, 'Sexo':Sexo}
result.append(resultf)
with open('bio_json.csv', 'w') as outfile:
writer = DictWriter(outfile, ('ID', 'Nome', 'Sexo', 'Profissao', 'Legislatura'))
writer.writerows(result)
我希望得到如上所述的最终 csv。但是,在writer.writerows(result) 之后,我收到了这条消息:
File "C:\Users\fnac\Desktop\Universidade do Minho\Software\lib\csv.py", line 158, in writerows
return self.writer.writerows(map(self._dict_to_list, rowdicts))
File "C:\Users\fnac\Desktop\Universidade do Minho\Software\lib\csv.py", line 148, in _dict_to_list
wrong_fields = rowdict.keys() - self.fieldnames
AttributeError: 'list' object has no attribute 'keys'
【问题讨论】:
-
您的代码,如所列,即使在该行之前也无法工作 -
result被声明为 dict ({}),而不是列表,并且您正在尝试使用 list 方法.append()就可以了。 -
(更不用说
cont未定义等) -
嗨。是的,我以非常草率的方式复制了我已经编写的代码。很高兴你明白我的意思!
标签: python list csv dictionary web-scraping