【问题标题】:create custom json file from csv using python使用python从csv创建自定义json文件
【发布时间】:2021-08-11 20:25:57
【问题描述】:

我有一个包含 3 个字段的 csv 文件。我想根据表格自定义格式创建一个 json 文件。我想使用dash cytoscape中的json文件。

我曾尝试使用 pandas 作为数据框,并将数据框更改为 json 格式。我看到了this question。由于不同的 json 格式不同,这个问题我无法使用答案。 CSV 表:

DISTRICT,MONTH
B2,2
A7,5
A1,9

...

我想把表格转成json格式如下:

[           {'data': {'id': 'B2', 'label': 'B2'}},
            {'data': {'id': 'A7', 'label': 'A7'}},
            {'data': {'id': 'A1', 'label': 'A1'}},
            {'data': {'id': '2', 'label': '2'}},
            {'data': {'id': '5', 'label': '5'}},
            {'data': {'id': '9', 'label': '9'}},

            {'data': {'source': 'B2', 'target': '2'}},
            {'data': {'source': 'A7', 'target': '5'}},
            {'data': {'source': 'A1', 'target': '9'}}
        ]

【问题讨论】:

  • 它看起来像 2 个字段;到目前为止,您尝试了什么,但是否在某个地方失败了?
  • @DavidS 是的。这是两个字段
  • 我尝试使用 pandas 作为数据框并将其更改为 json 文件。
  • 格式与您在问题中发布的 CSV 无关,您能否提供更多有关您正在尝试做什么的信息?为什么有些 id 使用第一列而有些使用第二列,目标列是什么,等等...

标签: python json pandas csv


【解决方案1】:

这些代码应该可以完成这项工作。如果您对数据进行一些花哨的分析,Pandas 可能会更容易一些。我不是粉丝(因为它经常让我陷入不必要的技术细节,加上版本混乱),所以我坚持使用 Python 内置包。

import csv
import json

with open('yourcsv.csv') as csvfile:
    labels = []
    mappings = []
    csvreader = csv.reader(csvfile, delimiter=',')
    # skips your header
    next(csvreader)
    for row in csvreader:
        labels.append({
            'data': {'id': row[0], 'label': row[0]},
            'data': {'id': row[1], 'label': row[1]}
        })
        mappings.append({
            'data': {'source': row[0], 'target': row[1]}
        })

with open('yourjson.json', 'w') as f:
    # indent does the prettify
    json.dump(labels + mappings, f, indent=4)

【讨论】:

  • 谢谢。我使用您的代码并对其进行更改。它可以工作。你错过了 labels.append({ 'data': {'id': row[1], 'label': row[1]}. })
猜你喜欢
  • 2021-03-25
  • 1970-01-01
  • 2022-12-09
  • 1970-01-01
  • 2021-02-20
  • 2016-07-18
  • 1970-01-01
  • 2020-10-27
  • 2022-01-20
相关资源
最近更新 更多