如何将json块转换为CSV文件?

时间:2016-10-17 17:35:23

标签: php mysql json csv

好。我有一个jsons文件,其中所有内容都是块,而不是一个。我现在的问题是,如果我可以将整个文件(大约13k行,每行是一个块)转换为csv文件,我以后可以使用PHP将其导入MySQL。有没有人有这个或程序的脚本? 我尝试自己做但放弃了因为我从未在PHP中做过类似的事情......

{
    "reason_public": "",
    "reason_admin": "text",
    "enacted_by": 1,
    "created": 1,
    "time_lifted_orig": 1,
    "enacted_username": "text",
    "time_lifted": 1,
    "suspended_username": "text",
    "row_id": 1,
    "user_suspended": 1,
    "reason_private": "text"
} {
    "reason_public": "",
    "reason_admin": "",
    "enacted_by": 3,
    "created": 1,
    "time_lifted_orig": 1,
    "enacted_username": "text",
    "time_lifted": 1,
    "suspended_username": "text",
    "row_id": 1,
    "user_suspended": 1,
    "reason_private": "text"
}

2 个答案:

答案 0 :(得分:0)

答案类型取决于您的申请。如果您只需要一次性转换一堆json,就可以使用在线工具为您完成(例如This OneThis One)。但是,如果你的json包含敏感信息,我可能不建议使用在线工具。

如果你需要自动化的东西,你可以下载实用工具(比如This One。或者,你可以自己动手。

如果你想/需要自己动手,我建议你自己动手,然后当你遇到绊脚石时回来。这听起来并不是一个不常见的要求,所以应该有一些很好的资源来帮助你入门。如果你无法找到适合你的东西,我会建议你搜索如何通过php(也许是this?)读取json,然后搜索如何通过php吐出csv(也许{ {3}})...如果你结婚使用php。就个人而言,我可能倾向于编写一个独立的API。

答案 1 :(得分:0)

假设您不是在谈论处理通过表单上传的文件,这应该有效:

<?php
    $read_file_handle = fopen("inputfile.txt", "r");
    $write_file_handle = fopen("outputfile.txt", "w"); //Will truncate file if it exists 
    if ($read_file_handle && $write_file_handle) {
        while (($line = fgets($read_file_handle)) !== false) {
            $output = json_decode($line, true); //Decode into array
            fputcsv($write_file_handle, $output);
        }

        fclose($read_file_handle);
        fclose($write_file_handle);
    } else {
        // error opening the file.
    }

?>

请注意,您需要使用此函数在json_decode过程中测试错误。此方法要求每行包含完整,格式正确的JSON。我自己并没有这样做,所以可能需要进行小的调整。