Python 将词典列表导出到Excel文件

Python 将词典列表导出到Excel文件,python,json,csv,web-scraping,Python,Json,Csv,Web Scraping,我正在尝试将一些JSON导出到excel文件,这样键就是标题。我已经创建了一个字典列表,到目前为止,我的代码如下: import requests import json import csv from csv import DictWriter list_json = ['a705932387657456c4a535355794d45786c5a326c7a6247463064584a684c314a6c5a326c7a644739436157396e636d466d61574e765745

我正在尝试将一些JSON导出到excel文件,这样键就是标题。我已经创建了一个字典列表,到目前为止,我的代码如下:

import requests
import json
import csv
from csv import DictWriter

list_json = ['a705932387657456c4a535355794d45786c5a326c7a6247463064584a684c314a6c5a326c7a644739436157396e636d466d61574e7657456c4a53563971633239754c6e523464413d3d&fich=RegistoBiograficoXIII_json.txt&Inline=true', 'a705932387657456c4a4a5449775447566e61584e7359585231636d4576556d566e61584e3062304a706232647959575a705932395953556c66616e4e76626935306548513d&fich=RegistoBiograficoXII_json.txt&Inline=true', 'a705932387657456b6c4d6a424d5a5764706332786864485679595339535a57647063335276516d6c765a334a685a6d6c6a6231684a5832707a6232347564486830&fich=RegistoBiograficoXI_json.txt&Inline=true', 'a7059323876574355794d45786c5a326c7a6247463064584a684c314a6c5a326c7a644739436157396e636d466d61574e7657463971633239754c6e523464413d3d&fich=RegistoBiograficoX_json.txt&Inline=true', 'a7059323876566b6c4a535355794d45786c5a326c7a6247463064584a684c314a6c5a326c7a644739436157396e636d466d61574e76566b6c4a53563971633239754c6e523464413d3d&fich=RegistoBiograficoVIII_json.txt&Inline=true', 'a7059323876566b6c4a535355794d45786c5a326c7a6247463064584a684c314a6c5a326c7a644739436157396e636d466d61574e76566b6c4a53563971633239754c6e523464413d3d&fich=RegistoBiograficoVIII_json.txt&Inline=true', 'a7059323876566b6c4a4a5449775447566e61584e7359585231636d4576556d566e61584e3062304a706232647959575a705932395753556c66616e4e76626935306548513d&fich=RegistoBiograficoVII_json.txt&Inline=true', 'a7059323876566b6b6c4d6a424d5a5764706332786864485679595339535a57647063335276516d6c765a334a685a6d6c6a62315a4a5832707a6232347564486830&fich=RegistoBiograficoVI_json.txt&Inline=true', 'a7059323876566955794d45786c5a326c7a6247463064584a684c314a6c5a326c7a644739436157396e636d466d61574e76566c3971633239754c6e523464413d3d&fich=RegistoBiograficoV_json.txt&Inline=true', 'a70593238765356596c4d6a424d5a5764706332786864485679595339535a57647063335276516d6c765a334a685a6d6c6a62306c575832707a6232347564486830&fich=RegistoBiograficoIV_json.txt&Inline=true', 'a705932387653556c4a4a5449775447566e61584e7359585231636d4576556d566e61584e3062304a706232647959575a705932394a53556c66616e4e76626935306548513d&fich=RegistoBiograficoIII_json.txt&Inline=true', 'a705932387653556b6c4d6a424d5a5764706332786864485679595339535a57647063335276516d6c765a334a685a6d6c6a62306c4a5832707a6232347564486830&fich=RegistoBiograficoII_json.txt&Inline=true', 'a7059323876513239756333527064485670626e526c4c314a6c5a326c7a644739436157396e636d466d61574e765132397563313971633239754c6e523464413d3d&fich=RegistoBiograficoCons_json.txt&Inline=true']

result = []

for i in list_json:
    url = 'http://app.parlamento.pt/webutils/docs/doc.txt?path=6148523063446f764c324679626d56304c3239775a57356b595852684c3052685a47397a51574a6c636e5276637939535a576470633352764a544977516d6c765a334c446f575{}'.format(i)
    r = requests.get(url)
    cont = r.json()
    result.append(cont)


with open('bio.csv', 'w') as outfile:
    writer = DictWriter(outfile, ('?xml', 'RegistoBiografico'))
    writer.writerows(result)
我希望导出工作正常,并按预期获得csv文件。我的导出尝试的输出如下所示:

Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
  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\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u25fe' in position 103992: character maps to <undefined>
回溯(最近一次呼叫最后一次):
文件“”,第3行,在
文件“C:\Users\fnac\Desktop\Universidade do Minho\Software\lib\csv.py”,第158行,writerows格式
返回self.writer.writerows(映射(self.\u dict\u to\u list,rowdicts))
文件“C:\Users\fnac\Desktop\Universidade do Minho\Software\lib\encodings\cp1252.py”,第19行,编码
返回codecs.charmap\u encode(输入、自身错误、编码表)[0]
UnicodeEncodeError:“charmap”编解码器无法对103992位置的字符“\u25fe”进行编码:字符映射到

有人能告诉我这里做错了什么吗?

失败是因为打开输出文件时没有指定编码。在您的系统上,它默认为
cp1252
,并且文件内容使用的是Unicode代码点,这些代码点没有映射到该编码中。改用
utf8
utf-8-sig
<如果使用Excel查看CSV,则代码>utf-8-sig是理想的选择。根据文档使用
newline='

with open('bio.csv', 'w', newline='', encoding='utf-8-sig') as outfile:

那帮了大忙!非常感谢。