我正在使用JSON pull parser for PHP 7从巨大的 25GB json文件中提取数据。这是my dummy json file
数据提取工作正常,直到json文件的Line 153731
,然后我收到此错误:
Fatal error: Uncaught pcrov\JsonReader\Parser\ParseException: Line 153731: Unexpected 'u'. in
C:\xampp\htdocs\json\pcrov\vendor\pcrov\jsonreader\src\Parser\Lexer.php:134
Stack trace:
#0 C:\xampp\htdocs\json\pcrov\vendor\pcrov\jsonreader\src\Parser\Lexer.php(97): pcrov\JsonReader\Parser\Lexer->consumeLiteral('ull')
#1 [internal function]: pcrov\JsonReader\Parser\Lexer->getIterator()
#2 C:\xampp\htdocs\json\pcrov\vendor\pcrov\jsonreader\src\Parser\Parser.php(180): IteratorIterator->next()
#3 C:\xampp\htdocs\json\pcrov\vendor\pcrov\jsonreader\src\Parser\Parser.php(152): pcrov\JsonReader\Parser\Parser->parsePair()
#4 C:\xampp\htdocs\json\pcrov\vendor\pcrov\jsonreader\src\Parser\Parser.php(205): pcrov\JsonReader\Parser\Parser->parseObject()
#5 C:\xampp\htdocs\json\pcrov\vendor\pcrov\jsonreader\src\Parser\Parser.php(123): pcrov\JsonReader\Parser\Parser->parseValue()
#6 C:\xampp\htdocs\json\pcrov\vendor\pcrov\jsonreader\src\Parser\Parser.php(202): pcrov\JsonReader\Parser\Parser->parseArray()
#7 C:\xampp\htdocs\json\pcrov\vendor\ in C:\xampp\htdocs\json\pcrov\vendor\pcrov\jsonreader\src\Parser\Lexer.php on line 134
我用google搜索并梳理了stackoverflow以了解如何解决问题,但一直没有成功。
这是我的代码:
<?php
require_once 'C:/xampp/htdocs/json/pcrov/vendor/autoload.php';
use \pcrov\JsonReader\JsonReader;
ini_set("max_execution_time", 0);
$reader = new JsonReader();
$reader->open("myjsonfile.json");
$fo = fopen("mycsv.csv", "w" );
fputs($fo, "name, ultimateHoldingCompany".PHP_EOL);
while($reader->read()) {
$name = null;
$uhcName = null;
if ($reader->read("entityName")){
$name = null;
$entityName = $reader->value();
}
if ($reader->read("ultimateHoldingCompany")){
$uhcName = null;
$ultimateHoldingCompany = $reader->value();
if (empty($ultimateHoldingCompany)){
$uhcName = null;
}
else {
$uhcName = $ultimateHoldingCompany[0]['name'];
}
//print_r($uhcName); die;
}
fputs($fo, $entityName.",".$uhcName.PHP_EOL);
}
$reader->close();
?>
感谢您的帮助。
答案 0 :(得分:0)
我通过将json文件拆分成更小的块来解决问题。