У кого-либо есть проблемы, идущие от serializeJSON метода ColdFusion до json_decode PHP?

Вы можете использовать pd.wide_to_long только для этого. В аргументе stubnames arg вы можете использовать набор имен переменных (исключая name и отбрасывать последние 4 символа) в вашей df, используя этот код: set([x[:-4] for x in df.columns[1:]]).

pd.wide_to_long(df,stubnames=set([x[:-4] for x in df.columns[1:]]),i=['name'],j='year').reset_index()

Выход:

    name    year    education   income  children
0   John    2015    13          1       7
1   Phillip 2015    14          2       8
2   Carl    2015    15          3       9
3   John    2016    16          4       10
4   Phillip 2016    17          5       11
5   Carl    2016    18          6       12
5
задан Programmer Bruce 17 June 2011 в 16:43
поделиться

4 ответа

Вы могли попытаться действовать в UTF-8 и также позволить PHP знать тот факт.

У меня была проблема с PHP's json_decode не будучи способен декодировать строку UTF-8 JSON (с некоторыми "странными" символами кроме изогнутых кавычек, которые Вы имеете). Мое решение состояло в том, чтобы подсказать PHP, что я работал в режиме UTF-8 путем вставки метатега Типа контента в страницу HTML, которая делала отправление PHP. Тем путем тип контента отправленных данных, которые являются строкой JSON, также был бы UTF-8:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>

После этого, PHP's json_decode смог правильно декодировать строку.

2
ответ дан 15 December 2019 в 01:15
поделиться

можно ли копировать эту проблему надежно? и раз так можно ли отправить демонстрационные данные, которые возвращают пустой указатель? я уверен, что Вы знаете это, но для информационной пользы для других, натыкающихся на это, кто не может, RFC 4627 описать JSON, и это - частая ошибка предположить, что действительный JavaScript является допустимым JSON., лучше думать о JSON как о подмножестве JavaScript.

в ответ на редактирование:

я предложил бы проверить, чтобы удостовериться, что Ваша информация заполняется в Вашем Сценарии PHP (прежде чем это будет выдано к json_decode), и также проверяющей ту информацию (особенно, если можно надежно воспроизвести ошибку). можно попробовать блок проверки допустимости онлайн за удобство. на основе очень ограниченной информации это походит, возможно, что это приводит к таймауту и не захватывает все данные? существует ли потребность в таком большом наборе данных?

1
ответ дан 15 December 2019 в 01:15
поделиться

Вы могли попытаться анализировать его с другим синтаксическим анализатором и искать ошибку - я знаю, что синтаксические анализаторы Python JSON являются очень высококачественными. Если Вам установили Python, достаточно легко выполнить текст через программу проверки синтаксиса demjson. Если это - очень большой набор данных, можно пользоваться моей библиотекой jsonlib - использование памяти будет выше, чем с demjson, но это будет работать быстрее, потому что это записано в C.

0
ответ дан 15 December 2019 в 01:15
поделиться

У меня была именно эта проблема, и оказалось, что это произошло из-за того, что ColdFusion не помещал печатных символов в пакеты JSON (эти символы действительно существовали в наших данных), но они не могут войти в JSON .

Два вопроса на этом сайте устранили эту проблему для меня, хотя я выбрал решение PHP, а не решение ColdFusion, так как считаю его более элегантным из двух.

Решение PHP

Исправить строку перед передачей его в json_decode ()

$string = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $string);

Решение ColdFusion

Используйте функцию cleanXmlString () в этом вопросе SO после использования serializeJSON ()

1
ответ дан 15 December 2019 в 01:15
поделиться
Другие вопросы по тегам:

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