Я пытаюсь загрузить этот CSV по этой ссылке, когда я загружаю с помощью браузера, все в порядке, но код, который я не могу https://www.policyuncertainty.com/media/Global_Policy_Uncertainty_Data.csv Я пробовал использовать pandas с utf-8 и latin-1:
Если я делаю это без кодирования, я получаю эту ошибку: кодек utf-8 не может декодировать байт 0xf5 в позиции 5: недопустимый начальный байт
data = pd.read_csv('https://www.policyuncertainty.com/media/Global_Policy_Uncertainty_Data.csv',encoding='iso-8859-1')
Я также пробовал с этим кодом
url = "https://www.policyuncertainty.com/media/Global_Policy_Uncertainty_Data.csv"
response = requests.get(url)
with open(ruta+"/Global_Policy_Uncertainty_Data.csv", "w") as f:
writer = csv.writer(f)
for line in response.iter_lines():
print(line)
writer.writerow(line.decode("ISO-8859-1").split("",""),escapechar = "/")
но я всегда получаю эти странные символы в файле возможно, потому что у меня нет правильной кодировки, но когда я использую почтальон, он дает мне нормальные данные
Кодировка utf-8
Эта страница имеет кодировку UTF8, как и почти все веб-сайты. Это просто текст, а не какая-то двоичная кодировка.
Почему бы вам просто не сохранить файл на диск и не использовать его? Это уже файл CSV, он не нуждается в какой-либо обработке. Кроме того, если это UTF8, line.decode("ISO-8859-1") будет искажать только неамериканский текст.
Ссылка на изображение CSV, а не на настоящий CSV-файл.
Некоторые файлы Unicode начинаются с BOM — пары байтов, указывающих, какая кодировка Unicode используется. Это единственный способ действительно сказать, что файл имеет кодировку UTF8, а не какой-то, например, шведский файл с 2 КБ текста ASCII, за которым внезапно следуют некоторые шведские символы. Попробуйте использовать readv_csv с utf8-sig в качестве кодировки.
@diegocornejot эта ошибка не означает, что это файл Latin1. Все однобайтовые кодовые страницы идентичны UTF8 в диапазоне 0x00-0x7F, который охватывает американо-английские буквы, цифры и некоторые символы. Невозможно сказать, что файл, который вы разместили, является UTF8 или Latin1, если все символы являются английскими буквами и цифрами.






Изменение https на http в URL-адресе решило проблему для меня:
data = pd.read_csv('http://www.policyuncertainty.com/media/Global_Policy_Uncertainty_Data.csv')
Проблема может быть связана с недопустимой схемой URL. Из документации pandas read_csv: «Действительные схемы URL-адресов включают http, ftp, s3, gs и файл.
Пожалуйста не публикуйте изображения кода, сообщения об ошибках или другие текстовые данные.. Снимок экрана выглядит как случайный двоичный файл; данные сжаты?