【问题标题】:How to convert a .csv to .json on upload如何在上传时将 .csv 转换为 .json
【发布时间】:2021-06-09 11:50:08
【问题描述】:

我有一个 .csv 文件,该文件通过 FTP 从远程软件上传(更新后)到我的主机上。

此文件列出了一些对象。

我希望每次更新时都将这个 .csv 转换为 .json。

这可能吗?我的主机需要特殊设置吗?

非常感谢您的提示

【问题讨论】:

  • 欢迎来到 Stack Overflow。请拨打tour,访问help center 并查看asking a question 的指南。如果在此站点搜索“在服务器上将 csv 转换为 json”并查看答案后,请使用服务器堆栈详细信息和您尝试过的内容更新问题。

标签: javascript python type-conversion


【解决方案1】:

我不知道您使用哪种代码上传文件,这有点问题,但这里有一些解决方案。

对于python:最简单的解决方案(但可能不是最快的解决方案),如果您pip install pandas 并导入它,则可以运行

f = pandas.read_csv(uploadedFilePath)
f.to_json(uploadedFilePath)

假设您知道文件路径在哪里,如果您的代码上传它,您应该知道。

对于 PHP:

$csv = $_POST["csv"]
$array = array_map("str_getcsv", explode("\n", $csv));
$json = json_encode($array);

$jsonFile = fopen("{$filename}.txt", "w");
fwrite($jsonFile, $json);
fclose($jsonFile);

您可能可以从代码中看出,但这只是从 csv 文件中获取内容(在将文件保存到服务器之前)并将其映射到数组,然后将其转换为 json 文件并保存到服务器。

对于 nodejs:有一个名为 csvtojson 的包,正如您可能猜到的那样,它将 csv 转换为 json。安装它只需npm i --save csvtojson,然后

const csv = require("csvtojson")
const fs = require("fs")

csv()
.fromFile(uploadedFilePath)
.then((jsonObj)=>
{
   fs.appendFile(fileName + ".json", jsonObj, function (err) {
      if (err) throw err;
   });

   fs.unlink(uploadedFilePath, err) => 
   {
      if (err) throw err;
   }
})

它只是读取上传的文件,将其转换为json,将其保存到新文件中,并删除旧文件。您可以跳过将其保存到新文件/删除部分并将其保存到旧文件,但如果您这样做,您最初可能应该在没有扩展名或使用 json 扩展名的情况下保存它以避免混淆。

【讨论】:

    猜你喜欢
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    相关资源
    最近更新 更多