我想将一个非常规的CSV格式转换为一个非常特定格式的JSON文件。我不允许编辑CSV本身来解决问题,必须使用pandas来提取CSV数据。
我的CSV看起来像这样(较小的版本):
| 姓名、名称|检查名称1|考试分数1|检查名称2|考试分数2| Exam mark 2 |
| --|--|--|--|--| ------------ |
| 约翰·史密斯|计算|七十二|数学|九十| 90 |
| 艾米·史密斯|历史记录|十二岁|数学|四十六| 46 |
CSV比这个长得多,有32个检查名称和标记条目。
我需要我的JSON看起来像这样:
{
"Students": [
{
"123":{
"Name": "John Smith",
"Marks": [
{
"Exam Name": "Computing"
"Exam Mark": 72
},
{
"Exam Name": "Maths"
"Exam Mark": 90
}
]
},
{
"124":{
"Name": "Amy Smith",
"Marks": [
{
"Exam Name": "History"
"Exam Mark": 12
},
{
"Exam Name": "Maths"
"Exam Mark": 46
}
]
},
etc...
字符串
请大家帮帮忙:)
data = {}
stu = data["Student"] = []
df=pd.read_csv(csvFilePath,usecols=[0, 1])
stu.append(df.set_index('id').T.to_dict('dicts'))
型
给出:
{
"Student": [
{
"123": {
"Name": "John Smith"
},
"124": {
"Name": "Amy Smith"
},
型
然后我如何添加标记,使其看起来像顶部的示例?
我知道我可以通过数字访问特定的列,但我不知道如何循环访问它们并将它们添加到json文件中的正确位置。
1条答案
按热度按时间8yoxcaq71#
使用您提供的dataframe:
字符串
以下是使用Pandas iterrows的一种方法:
型
然后:
型