我有一些文本格式的库存数据,我想把它转换成特定格式的JSON。 文本文件中的数据点用逗号(,)分隔,每行包含间隔为1分钟的数据。 另外,在某些行中,末尾有多余的不必要数据,因此我要确保在转换之后只存在六个数据点(不包括第一个数据点和第七个数据点之后的任何数据)
输入数据:
BANKNIFTY_F1,20150228,15:27,19904.65,19924.00,19900.40,19920.20,31225
BANKNIFTY_F1,20150228,15:28,19921.05,19941.30,19921.05,19937.00,31525
BANKNIFTY_F1,20150228,15:29,19932.45,19945.00,19930.10,19945.00,38275
BANKNIFTY_F1,20150228,15:30,19947.00,19949.40,19930.00,19943.80,43400
BANKNIFTY_F1,20150302,09:16,20150.15,20150.15,20021.50,20070.00,91775,2026525
BANKNIFTY_F1,20150302,09:17,20071.50,20085.00,20063.50,20063.50,45700,2026525
预期输出数据:
[{"date":"20150228","time":"15:27","open":"19904.65","high":"19924.00","low":"19900.40","close":"19920.20","volume":"31225"},{"date": "20150228", "time":"15:28", "open":"19921.05","high":"19941.30" ,"low":"19921.05","close":"19937.00", "volume":"31525"}, {"date":"20150228","time" :"15:29" ,"open": "19932.45" ,"high" :"19945.00 ","low":"19930.10","close" :"19945.00","volume":"38275"},{"date": "20150228","time ":" 15:30","open ":"19947.00","high" :"19949.40","low":"19930.00" ,"close":"19943.80", "volume":"43400"} , {"date": "20150302","time" :"09:16","open":"20150.15","high ":"20150.15", "low":"20021.50", "close":"20070.00 ","volume":"91775"}, {"date":"20150302", "time": "09:17","open": "20071.50", "high":"20085.00" , "low":"20063.50", "close":"20063.50", "volume": "45700"}
请注意,在预期输出中,最后两个输入行中显示的最后一个不必要的数据点被忽略。你知道吗
假设文本文件中的所有行都是以相同的方式构建的,您可以逐行迭代文本文件,并以严格的方式断开它,如:
这不是最漂亮的答案,但它适用于您的数据类型(:
您希望将csv文件转换为JSON。在python中使用CSV文件时,请始终考虑数据帧。所以首先安装Pandas(pip install Pandas)。你知道吗
将csv文件作为Pandas数据帧读取,将列标题设置为键,然后使用Pandas内置功能to_dict转换为json。只有几行代码。你知道吗
首先需要清除文件中不需要的行。如果只需要前X列,还可以使用pd.read_csv中的参数来选择特定的列。然后执行以下操作:
可以使用pd.read_csv为列设置特定的数据类型
您可以使用python中的文件处理简单地做到这一点。你知道吗
不然呢
输出:
相关问题 更多 >
编程相关推荐