CSV到JSON以及Python的子列表数组

2024-06-25 23:21:08 发布

您现在位置:Python中文网/ 问答频道 /正文

无法使用子列表数组将CSV文件转换为JSON。 CSV包含一些类别的列表。每列表示由其行组成的列表。列标题是类别标识符。需要将其转换为以下格式的JSON:

[
    {
        "category": "Egypt",
        "list": [
            "Cairo",
            "Alexandria"
        ]
    },
    {
        "category": "USA",
        "list": [
            "California",
            "Texas"
        ]
    }
]

表格编号:

Egypt , USA
Cairo , California
Alexandria , Texas
.....

谢谢


Tags: 文件csvjson标题列表数组类别list
2条回答

也许和熊猫在一起?你知道吗

import pandas as pd

# Load the data
data = pd.read_csv(filename)

# Reshaping
data_reshaped = pd.melt(df).groupby('variable').agg(list).reset_index().T
data_reshaped.index = ['category','list']

# Convert to json
data_reshaped.to_json()

你会得到:

'{"0":{"category":"Egypt","list":["Cairo","Alexandria "]},
  "1":{"category":"USA","list":["California","Texas"]}}'

这不是你想要的,但这是个开始。你知道吗

import json

str = '''Egypt , USA
Cairo , California
Alexandria , Texas'''

lines = str.split('\n')
lists = []
for line in lines:
  lists.append(line.split(" , "))
my_list = []
my_dict = {}
for j in range(len(lists[0])):
  my_dict["category"] = lists[0][j]
  my_dict["list"] = [lists[i][j] for i in range(1, len(lists))]
  my_list.append(my_dict)
print(json.dumps(my_list))

它基本上是一个字典列表。因此,您需要将每个单独的字典放在一个循环中,并将其附加到一个新列表中。然后可以使用json.dumps()以json格式获取它。你知道吗

我对回答问题还不熟悉,所以如果有什么不清楚的地方,请尽管问。你知道吗

相关问题 更多 >