[英]convert csv to specific json format
I have a csv file I want to convert it to json. I tried my best but I could not get it.我有一个 csv 文件,我想将它转换为 json。我尽力了,但我无法得到它。 The csv is like this.
csv是这样的。
Income Statement,24/09/16,30/09/17,29/09/18,28/09/19,26/09/20,25/09/21,LTM
,,,,,,,
Revenues,,229234.00,265595.00,260174.00,274515.00,365817.00,378323.00
Total Revenues,,229234.00,265595.00,260174.00,274515.00,365817.00,378323.00
% Change YoY,,,15.9%,(2.0%),5.5%,33.3%,
Cost of Goods Sold,,"(141,048.00)","(163,756.00)","(161,782.00)","(169,559.00)","(212,981.00)","(215,572.00)"
Gross Profit,,88186.00,101839.00,98392.00,104956.00,152836.00,162751.00
% Change YoY,,,15.5%,(3.4%),6.7%,45.6%,
% Gross Margins,,38.5%,38.3%,37.8%,38.2%,41.8%,43.0%
Selling General & Admin Expenses,,"(15,261.00)","(16,705.00)","(18,245.00)","(19,916.00)","(21,973.00)","(22,791.00)"
R&D Expenses,,"(11,581.00)","(14,236.00)","(16,217.00)","(18,752.00)","(21,914.00)","(23,057.00)"
Other Operating Expenses,,"(26,842.00)","(30,941.00)","(34,462.00)","(38,668.00)","(43,887.00)","(45,848.00)"
Operating Income,,61344.00,70898.00,63930.00,66288.00,108949.00,116903.00
% Change YoY,,,15.6%,(9.8%),3.7%,64.4%,
What I want is a bit complicated我想要的有点复杂
{"income_statement":
{"24/9/16":
{"Revenues(0)":"","Total Revenues(1)":""," % Change YoY(2)":"","Cost of Goods Sold(3)":"","Gross Profit(4)":""," % Change YoY(5)":""," % Gross Margins(6)":"","Selling General & Admin Expenses(7)":"","R&D Expenses(8)":"","Other Operating Expenses(9)":"","Operating Income(10)":""," % Change YoY(11)":""," % Operating Margins(12)":"","Interest Expense(13)":"","Interest And Investment Income(14)":"","Currency Exchange Gains (Loss)(15)":"","Other Non Operating Income (Expenses)(16)":"","EBT Excl. Unusual Items(17)":"","EBT Incl. Unusual Items(18)":"","Income Tax Expense(19)":"","Earnings From Continuing Operations(20)":"","Net Income to Company(21)":"","Net Income(22)":"","Net Income to Common Incl Extra Items(23)":""," % Net Income to Common Incl Extra Items Margins(24)":"","Net Income to Common Excl. Extra Items(25)":""," % Net Income to Common Excl. Extra Items Margins(26)":"","Diluted EPS Excl Extra Items(27)":""," % Change YoY(28)":"","Weighted Average Diluted Shares Outstanding(29)":""," % Change YoY(30)":"","Weighted Average Basic Shares Outstanding(31)":""," % Change YoY(32)":"","Dividends Per Share(33)":""," % Change YoY(34)":"","Payout Ratio %(35)":"","Basic EPS(36)":"","EBITDA(37)":""," % Change YoY(38)":"","EBITDAR(39)":"","R&D Expense(40)":"","Selling and Marketing Expense(41)":"","Effective Tax Rate %(42)":""},
"30/9/17":
{"Revenues(0)":"229.234,00","Total Revenues(1)":"229.234,00"," % Change YoY(2)":"","Cost of Goods Sold(3)":"(141.048,00)","Gross Profit(4)":"88.186,00"," % Change YoY(5)":""," % Gross Margins(6)":"38,5 %","Selling General & Admin Expenses(7)":"(15.261,00)","R&D Expenses(8)":"(11.581,00)","Other Operating Expenses(9)":"(26.842,00)","Operating Income(10)":"61.344,00"," % Change YoY(11)":""," % Operating Margins(12)":"26,8 %","Interest Expense(13)":"(2323,00)","Interest And Investment Income(14)":"5201,00","Currency Exchange Gains (Loss)(15)":"","Other Non Operating Income (Expenses)(16)":"(133,00)","EBT Excl. Unusual Items(17)":"64.089,00","EBT Incl. Unusual Items(18)":"64.089,00","Income Tax Expense(19)":"(15.738,00)","Earnings From Continuing Operations(20)":"48.351,00","Net Income to Company(21)":"48.351,00","Net Income(22)":"48.351,00","Net Income to Common Incl Extra Items(23)":"48.351,00"," % Net Income to Common Incl Extra Items Margins(24)":"21,1 %","Net Income to Common Excl. Extra Items(25)":"48.351,00"," % Net Income to Common Excl. Extra Items Margins(26)":"21,1 %","Diluted EPS Excl Extra Items(27)":"2,30"," % Change YoY(28)":"","Weighted Average Diluted Shares Outstanding(29)":"21.006,77"," % Change YoY(30)":"","Weighted Average Basic Shares Outstanding(31)":"20.868,97"," % Change YoY(32)":"","Dividends Per Share(33)":"0,60"," % Change YoY(34)":"","Payout Ratio %(35)":"26,4 %","Basic EPS(36)":"2,32","EBITDA(37)":"71.501,00"," % Change YoY(38)":"","EBITDAR(39)":"72.601,00","R&D Expense(40)":"11.581,00","Selling and Marketing Expense(41)":"","Effective Tax Rate %(42)":"24,6 %"},
"29/9/18":
{"Revenues(0)":"265.595,00","Total Revenues(1)":"265.595,00"," % Change YoY(2)":"15,9 %","Cost of Goods Sold(3)":"(163.756,00)","Gross Profit(4)":"101.839,00"," % Change YoY(5)":"15,5 %"," % Gross Margins(6)":"38,3 %","Selling General & Admin Expenses(7)":"(16.705,00)","R&D Expenses(8)":"(14.236,00)","Other Operating Expenses(9)":"(30.941,00)","Operating Income(10)":"70.898,00"," % Change YoY(11)":"15,6 %"," % Operating Margins(12)":"26,7 %","Interest Expense(13)":"(3240,00)","Interest And Investment Income(14)":"5686,00","Currency Exchange Gains (Loss)(15)":"","Other Non Operating Income (Expenses)(16)":"(441,00)","EBT Excl. Unusual Items(17)":"72.903,00","EBT Incl. Unusual Items(18)":"72.903,00","Income Tax Expense(19)":"(13.372,00)","Earnings From Continuing Operations(20)":"59.531,00","Net Income to Company(21)":"59.531,00","Net Income(22)":"59.531,00","Net Income to Common Incl Extra Items(23)":"59.531,00"," % Net Income to Common Incl Extra Items Margins(24)":"22,4 %","Net Income to Common Excl. Extra Items(25)":"59.531,00"," % Net Income to Common Excl. Extra Items Margins(26)":"22,4 %","Diluted EPS Excl Extra Items(27)":"2,98"," % Change YoY(28)":"29,4 %","Weighted Average Diluted Shares Outstanding(29)":"20.000,44"," % Change YoY(30)":"(4,8 %)","Weighted Average Basic Shares Outstanding(31)":"19.821,51"," % Change YoY(32)":"(5,0 %)","Dividends Per Share(33)":"0,68"," % Change YoY(34)":"13,3 %","Payout Ratio %(35)":"23,0 %","Basic EPS(36)":"3,00","EBITDA(37)":"81.801,00"," % Change YoY(38)":"14,4 %","EBITDAR(39)":"83.001,00","R&D Expense(40)":"14.236,00","Selling and Marketing Expense(41)":"","Effective Tax Rate %(42)":"18,3 %"},
"28/9/19":
{"Revenues(0)":"260.174,00","Total Revenues(1)":"260.174,00"," % Change YoY(2)":"(2,0 %)","Cost of Goods Sold(3)":"(161.782,00)","Gross Profit(4)":"98.392,00"," % Change YoY(5)":"(3,4 %)"," % Gross Margins(6)":"37,8 %","Selling General & Admin Expenses(7)":"(18.245,00)","R&D Expenses(8)":"(16.217,00)","Other Operating Expenses(9)":"(34.462,00)","Operating Income(10)":"63.930,00"," % Change YoY(11)":"(9,8 %)"," % Operating Margins(12)":"24,6 %","Interest Expense(13)":"(3576,00)","Interest And Investment Income(14)":"4961,00","Currency Exchange Gains (Loss)(15)":"","Other Non Operating Income (Expenses)(16)":"422,00","EBT Excl. Unusual Items(17)":"65.737,00","EBT Incl. Unusual Items(18)":"65.737,00","Income Tax Expense(19)":"(10.481,00)","Earnings From Continuing Operations(20)":"55.256,00","Net Income to Company(21)":"55.256,00","Net Income(22)":"55.256,00","Net Income to Common Incl Extra Items(23)":"55.256,00"," % Net Income to Common Incl Extra Items Margins(24)":"21,2 %","Net Income to Common Excl. Extra Items(25)":"55.256,00"," % Net Income to Common Excl. Extra Items Margins(26)":"21,2 %","Diluted EPS Excl Extra Items(27)":"2,97"," % Change YoY(28)":"(0,3 %)","Weighted Average Diluted Shares Outstanding(29)":"18.595,65"," % Change YoY(30)":"(7,0 %)","Weighted Average Basic Shares Outstanding(31)":"18.471,34"," % Change YoY(32)":"(6,8 %)","Dividends Per Share(33)":"0,75"," % Change YoY(34)":"10,3 %","Payout Ratio %(35)":"25,6 %","Basic EPS(36)":"2,99","EBITDA(37)":"76.477,00"," % Change YoY(38)":"(6,5 %)","EBITDAR(39)":"77.777,00","R&D Expense(40)":"16.217,00","Selling and Marketing Expense(41)":"","Effective Tax Rate %(42)":"15,9 %"},
"26/9/20":
{"Revenues(0)":"274.515,00","Total Revenues(1)":"274.515,00"," % Change YoY(2)":"5,5 %","Cost of Goods Sold(3)":"(169.559,00)","Gross Profit(4)":"104.956,00"," % Change YoY(5)":"6,7 %"," % Gross Margins(6)":"38,2 %","Selling General & Admin Expenses(7)":"(19.916,00)","R&D Expenses(8)":"(18.752,00)","Other Operating Expenses(9)":"(38.668,00)","Operating Income(10)":"66.288,00"," % Change YoY(11)":"3,7 %"," % Operating Margins(12)":"24,1 %","Interest Expense(13)":"(2873,00)","Interest And Investment Income(14)":"3763,00","Currency Exchange Gains (Loss)(15)":"","Other Non Operating Income (Expenses)(16)":"(87,00)","EBT Excl. Unusual Items(17)":"67.091,00","EBT Incl. Unusual Items(18)":"67.091,00","Income Tax Expense(19)":"(9680,00)","Earnings From Continuing Operations(20)":"57.411,00","Net Income to Company(21)":"57.411,00","Net Income(22)":"57.411,00","Net Income to Common Incl Extra Items(23)":"57.411,00"," % Net Income to Common Incl Extra Items Margins(24)":"20,9 %","Net Income to Common Excl. Extra Items(25)":"57.411,00"," % Net Income to Common Excl. Extra Items Margins(26)":"20,9 %","Diluted EPS Excl Extra Items(27)":"3,28"," % Change YoY(28)":"10,4 %","Weighted Average Diluted Shares Outstanding(29)":"17.528,21"," % Change YoY(30)":"(5,7 %)","Weighted Average Basic Shares Outstanding(31)":"17.352,12"," % Change YoY(32)":"(6,1 %)","Dividends Per Share(33)":"0,80"," % Change YoY(34)":"6,0 %","Payout Ratio %(35)":"24,5 %","Basic EPS(36)":"3,31","EBITDA(37)":"77.344,00"," % Change YoY(38)":"1,1 %","EBITDAR(39)":"88.144,00","R&D Expense(40)":"18.752,00","Selling and Marketing Expense(41)":"","Effective Tax Rate %(42)":"14,4 %"},
"25/9/21":
{"Revenues(0)":"365.817,00","Total Revenues(1)":"365.817,00"," % Change YoY(2)":"33,3 %","Cost of Goods Sold(3)":"(212.981,00)","Gross Profit(4)":"152.836,00"," % Change YoY(5)":"45,6 %"," % Gross Margins(6)":"41,8 %","Selling General & Admin Expenses(7)":"(21.973,00)","R&D Expenses(8)":"(21.914,00)","Other Operating Expenses(9)":"(43.887,00)","Operating Income(10)":"108.949,00"," % Change YoY(11)":"64,4 %"," % Operating Margins(12)":"29,8 %","Interest Expense(13)":"(2645,00)","Interest And Investment Income(14)":"2843,00","Currency Exchange Gains (Loss)(15)":"","Other Non Operating Income (Expenses)(16)":"60,00","EBT Excl. Unusual Items(17)":"109.207,00","EBT Incl. Unusual Items(18)":"109.207,00","Income Tax Expense(19)":"(14.527,00)","Earnings From Continuing Operations(20)":"94.680,00","Net Income to Company(21)":"94.680,00","Net Income(22)":"94.680,00","Net Income to Common Incl Extra Items(23)":"94.680,00"," % Net Income to Common Incl Extra Items Margins(24)":"25,9 %","Net Income to Common Excl. Extra Items(25)":"94.680,00"," % Net Income to Common Excl. Extra Items Margins(26)":"25,9 %","Diluted EPS Excl Extra Items(27)":"5,61"," % Change YoY(28)":"71,0 %","Weighted Average Diluted Shares Outstanding(29)":"16.864,92"," % Change YoY(30)":"(3,8 %)","Weighted Average Basic Shares Outstanding(31)":"16.701,27"," % Change YoY(32)":"(3,8 %)","Dividends Per Share(33)":"0,85"," % Change YoY(34)":"6,9 %","Payout Ratio %(35)":"15,3 %","Basic EPS(36)":"5,67","EBITDA(37)":"120.233,00"," % Change YoY(38)":"55,5 %","EBITDAR(39)":"134.833,00","R&D Expense(40)":"21.914,00","Selling and Marketing Expense(41)":"","Effective Tax Rate %(42)":"13,3 %"},
"LTM":
{"Revenues(0)":"378.323,00","Total Revenues(1)":"378.323,00"," % Change YoY(2)":"","Cost of Goods Sold(3)":"(215.572,00)","Gross Profit(4)":"162.751,00"," % Change YoY(5)":""," % Gross Margins(6)":"43,0 %","Selling General & Admin Expenses(7)":"(22.791,00)","R&D Expenses(8)":"(23.057,00)","Other Operating Expenses(9)":"(45.848,00)","Operating Income(10)":"116.903,00"," % Change YoY(11)":""," % Operating Margins(12)":"30,9 %","Interest Expense(13)":"(2701,00)","Interest And Investment Income(14)":"2746,00","Currency Exchange Gains (Loss)(15)":"","Other Non Operating Income (Expenses)(16)":"(79,00)","EBT Excl. Unusual Items(17)":"116.869,00","EBT Incl. Unusual Items(18)":"116.869,00","Income Tax Expense(19)":"(16.314,00)","Earnings From Continuing Operations(20)":"100.555,00","Net Income to Company(21)":"100.555,00","Net Income(22)":"100.555,00","Net Income to Common Incl Extra Items(23)":"100.555,00"," % Net Income to Common Incl Extra Items Margins(24)":"26,6 %","Net Income to Common Excl. Extra Items(25)":"100.555,00"," % Net Income to Common Excl. Extra Items Margins(26)":"26,6 %","Diluted EPS Excl Extra Items(27)":"6,02"," % Change YoY(28)":"","Weighted Average Diluted Shares Outstanding(29)":"16.716,32"," % Change YoY(30)":"","Weighted Average Basic Shares Outstanding(31)":"16.565,42"," % Change YoY(32)":"","Dividends Per Share(33)":"0,87"," % Change YoY(34)":"","Payout Ratio %(35)":"14,5 %","Basic EPS(36)":"6,07","EBITDA(37)":"128.218,00"," % Change YoY(38)":"","EBITDAR(39)":"","R&D Expense(40)":"23.057,00","Selling and Marketing Expense(41)":"","Effective Tax Rate %(42)":"14,0 %"}}}
I dont know how to do it.我不知道该怎么做。 I ave spent hours trying but all in vain.
我花了几个小时尝试,但都是徒劳的。 Here is what I have tried till now
这是我到目前为止所尝试的
dic_income = {}
with open('test.csv','r') as inc:
lines = inc.readlines()
in_income = {}
col = []
for line in lines:
if line.startswith(',') and line.strip().endswith(','):
continue
ln = line.strip().split(',')
for i in ln:
if lines.index(line) == 0:
if i == '':
pass
else:
col.append(i)
dic_income_key = ln[0]
if ln.index(i) == 0:
pass
else:
in_income[i] = {}
else:
pass
dic_income[dic_income_key] = in_income
print(dic_income)
df = pd.read_csv("test.csv", usecols=col)
print(df[col[0]])
It gives only output for one line and now I am stuck at this point.它只给出一行 output,现在我被困在这一点上。
Code below will give you what you want:下面的代码会给你你想要的:
import pandas as pd
import json
df = pd.read_csv("test.csv")
dictionary = {}
columns = df.columns
for index, row in df.iterrows():
for column in columns:
if row["Income Statement"] != row["Income Statement"]:
continue
else:
if column == "Income Statement":
continue
if "Income Statement" not in dictionary:
dictionary["Income Statement"] = {}
if column not in dictionary["Income Statement"]:
dictionary["Income Statement"][column] = {}
if row[column] != row[column]:
toPut = ""
else:
toPut = row[column]
dictionary["Income Statement"][column][row["Income Statement"]] = toPut
print(json.dumps(dictionary, indent=4))
{
"Income Statement": {
"24/09/16": {
"Revenues": "",
"Total Revenues": "",
"% Change YoY": "",
"Cost of Goods Sold": "",
"Gross Profit": "",
"% Gross Margins": "",
"Selling General & Admin Expenses": "",
"R&D Expenses": "",
"Other Operating Expenses": "",
"Operating Income": ""
},
"30/09/17": {
"Revenues": "229234.00",
"Total Revenues": "229234.00",
"% Change YoY": "",
"Cost of Goods Sold": "(141,048.00)",
"Gross Profit": "88186.00",
"% Gross Margins": "38.5%",
"Selling General & Admin Expenses": "(15,261.00)",
"R&D Expenses": "(11,581.00)",
"Other Operating Expenses": "(26,842.00)",
"Operating Income": "61344.00"
},
"29/09/18": {
"Revenues": "265595.00",
"Total Revenues": "265595.00",
"% Change YoY": "15.6%",
"Cost of Goods Sold": "(163,756.00)",
"Gross Profit": "101839.00",
"% Gross Margins": "38.3%",
"Selling General & Admin Expenses": "(16,705.00)",
"R&D Expenses": "(14,236.00)",
"Other Operating Expenses": "(30,941.00)",
"Operating Income": "70898.00"
},
"28/09/19": {
"Revenues": "260174.00",
"Total Revenues": "260174.00",
"% Change YoY": "(9.8%)",
"Cost of Goods Sold": "(161,782.00)",
"Gross Profit": "98392.00",
"% Gross Margins": "37.8%",
"Selling General & Admin Expenses": "(18,245.00)",
"R&D Expenses": "(16,217.00)",
"Other Operating Expenses": "(34,462.00)",
"Operating Income": "63930.00"
},
"26/09/20": {
"Revenues": "274515.00",
"Total Revenues": "274515.00",
"% Change YoY": "3.7%",
"Cost of Goods Sold": "(169,559.00)",
"Gross Profit": "104956.00",
"% Gross Margins": "38.2%",
"Selling General & Admin Expenses": "(19,916.00)",
"R&D Expenses": "(18,752.00)",
"Other Operating Expenses": "(38,668.00)",
"Operating Income": "66288.00"
},
"25/09/21": {
"Revenues": "365817.00",
"Total Revenues": "365817.00",
"% Change YoY": "64.4%",
"Cost of Goods Sold": "(212,981.00)",
"Gross Profit": "152836.00",
"% Gross Margins": "41.8%",
"Selling General & Admin Expenses": "(21,973.00)",
"R&D Expenses": "(21,914.00)",
"Other Operating Expenses": "(43,887.00)",
"Operating Income": "108949.00"
},
"LTM": {
"Revenues": "378323.00",
"Total Revenues": "378323.00",
"% Change YoY": "",
"Cost of Goods Sold": "(215,572.00)",
"Gross Profit": "162751.00",
"% Gross Margins": "43.0%",
"Selling General & Admin Expenses": "(22,791.00)",
"R&D Expenses": "(23,057.00)",
"Other Operating Expenses": "(45,848.00)",
"Operating Income": "116903.00"
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.