Соленый файл не загрузится на Mac/Linux

В вашем контроллере вам нужно это:

return view( 'your_view_name',[ 
    'analyticsData'=> json_encode($analyticsData, JSON_UNESCAPED_SLASHES ); 
]);

Затем попробуйте это:

var analysdata = {!! $analyticsData !!};
const theData = [];
$.each( analysdata, function( key, value ) {
    theData.push({
        y: '2014-10-10', a: value.pageTitle,b: value.visitors, c: value.pageViews
    });
});

Morris.Area({
    element: 'dashboard-area-1',
    data: theData,
    xkey: 'y',
    ykeys: ['a','b', 'c'],
    labels: ['Page', 'Visitors','Page Views'],
    resize: true,
    hideHover: true,
    xLabels: 'day',
    gridTextSize: '10px',
    lineColors: ['#1caf9a','#33414E', '#2344d3'],
    gridLineColor: '#E5E5E5'
});
5
задан crystalattice 12 November 2008 в 14:04
поделиться

3 ответа

Вероятно, Вы не открыли файл в режиме двоичного счета при записи и/или чтении соленых данных. В этом случае произойдет преобразование формата новой строки, который может повредить двоичные данные.

Для открытия файла в режиме двоичного счета, необходимо обеспечить "b" как часть строки режима:

char_file = open('pickle.char', 'rb')
10
ответ дан 18 December 2019 в 06:24
поделиться
self.file = open(self.file_name, 'w')

Должен быть:

self.file = open(self.file_name, 'wb')

В Вашем createSaveFile функция, чтобы сохранить файл в режиме двоичного счета (а не текстовый режим). Необходимо также удостовериться, что Вы открываете файл в режиме двоичного счета также (rb).

Если Вы не будете использовать режим двоичного счета затем, то Windows преобразует все новые строки в \r\n и эффективно повредит файл (по крайней мере, что касается другой ОС).

2
ответ дан 18 December 2019 в 06:24
поделиться

Как упомянуто Adam, проблемой, вероятно, будет формат новой строки файла рассола.

К сожалению, настоящая проблема на самом деле вызывается на сохранении, а не загрузке. Это может быть восстанавливаемо при использовании соленых огурцов текстового режима, а не двоичного файла. Попытайтесь открыть файл в универсальном режиме новой строки, который заставит Python предполагать то, что правильные окончания строки т.е.:

char_file=open('filename.char','rU')

Однако при использовании двоичного формата (cPickle.dump (файл, 1)) у Вас может быть неисправимо поврежденный рассол (загружаясь в Windows) - если Вы удачливы, и никакие \r\n символы не обнаруживаются затем, он может работать, но как только это происходит, Вы могли закончить с поврежденными данными, поскольку нет никакого способа различать "реальный" код \r\n, и окна вставил при наблюдении просто \n.

Лучший способ обработать вещи, которые будут загружены в нескольких платформах, состоит в том, чтобы всегда сохранять в режиме двоичного счета. На Вашей машине окон, при сохранении использования рассола:

char_file = open('filename.char','wb')
cPickle.dumps(data, char_file)
9
ответ дан 18 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: