2015-06-16 2 views
-1

У меня есть скрипт python 2.7, который использует VirusTotal Api 2.0 (больше информации: https://www.virustotal.com/es/documentation/public-api/#scanning-files) Когда я пытаюсь сканировать несколько файлов это работает без проблем, иногда, но другие это вызывает эту ошибку:VirusTotal error: UnicodeDecodeError: кодек ascii не может декодировать байт 0xff в позиции 0: порядковый не в диапазоне (128)

Traceback (most recent call last): 
    File "F:/devPy/myProjects/script_vt.py", line 138, in <module> 
    scanMyFile() 
    File "F:/devPy/myProjects/script_vt.py", line 75, in scanQueue 
    jsonScan = scanAFile(fileToScan) 
    File "F:/devPy/myProjects/script_vt.py", line 37, in scanAFile 
    json = postfile.post_multipart(host, selector, fields, files) 
    File "F:\devPy\myProjects\script_vt.py", line 10, in post_multipart 
    content_type, body = encode_multipart_formdata(fields, files) 
    File "F:\devPy\myProjects\script_vt.py", line 42, in encode_multipart_formdata 
    body = CRLF.join(L) 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128) 

Здесь возникает ошибка .:

def scanAFile(fileToScan): 
    host = "www.virustotal.com" 
    selector = "https://www.virustotal.com/vtapi/v2/file/scan" 
    fields = [("apikey", myPublicKey)] 
    file_to_send = open(fileToScan, "rb").read() 
    files = [("file", fileToScan, file_to_send)] 
    json = postfile.post_multipart(host, selector, fields, files) 

    return simplejson.loads(json) 

Я прочитал много подобных вопросов на StackOverflow, но ни один из них работали для меня. Я использую pycharm под Windows.

+1

возможно дубликат [UnicodeDecodeError: в питона 2,7] (http://stackoverflow.com/questions/30329477/unicodedecodeerror-in-python-2-7) – n00dl3

+1

Вы задаете тот же вопрос [здесь] (http://stackoverflow.com/questions/30329477/unicodedecodeerror-in-python-2-7), пожалуйста, не наводняйте – n00dl3

+0

Извините, да, это тот же вопрос, но все же после одного месяца у вас такая же проблема, и никто не ответил, удалить новый или старый? –

ответ

0

Похоже, проблема связана с данными кода Юникода. Установка кодировки по умолчанию как UTF-8 может решить проблему.

Добавьте строки ниже в начало сценария.

import sys 
reload(sys) 
sys.setdefaultencoding('utf8') 
+0

Я уже пробовал это, новое сообщение об ошибке: Файл «C: \ Python27 \ lib \ encodings \ utf_8.py», строка 16, в декоде return codecs.utf_8_decode (вход, ошибки, True) UnicodeDecodeError: 'utf8 'кодек не может декодировать байт 0xff в позиции 0: недействительный стартовый байт –

Смежные вопросы

 Смежные вопросы