pandas read_json для многострочных jsons возвращает JSONReader, а не фрейм данных - PullRequest
0 голосов
/ 17 мая 2018

У меня есть файл file1.json, содержимое которого выглядит следующим образом (каждый dict в отдельной строке):

{"a":1,"b":2}
{"c":3,"d":4}
{"e":9,"f":6}
.
.
.
{"u":31,"v":23}
{"w":87,"x":46}
{"y":98,"z":68}

Я хочу загрузить этот файл в фрейм данных панд, поэтому я сделал следующее:

df = pd.read_json('../Dataset/file1.json', orient='columns', lines=True, chunksize=10)

Но вместо того, чтобы возвращать фрейм данных, возвращается JSONReader.

[IN]: df
[OUT]: <pandas.io.json.json.JsonReader at 0x7f873465bd30>

Это нормально или я что-то не так делаю? И если именно так должен вести себя read_json (), когда в одном файле json есть несколько словарей (без разделенных запятыми) и каждый из них содержит отдельную строку, то как мне лучше всего разместить их в кадре данных?

EDIT : если я удаляю параметр chunksize из read_json (), это то, что я получаю:

[IN]: df = pd.read_json('../Dataset/file1.json', orient='columns', lines=True)
[OUT]: ValueError: Expected object or value

1 Ответ

0 голосов
/ 17 мая 2018

Как объясняют документы , это как раз и есть точка параметра chunksize:

chunksize: целое число, по умолчанию None

Возвращает JsonReader объект для итерации.См. разделенные строкой документы json для получения дополнительной информации о chunksize.Это может быть передано только если lines = True .Если это None, файл будет считан в память все сразу.

В связанных документах сказано:

Для файлов json с разделителями строк, pandas также может вернутьитератор, который читает chunksize строки за раз.Это может быть полезно для больших файлов или для чтения из потока.

… и затем приведите пример того, как его использовать.

Если вы этого не хотите, почемуВы проезжаете chunksize?Просто оставь это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...