【问题标题】:how to print out json data from csv如何从csv打印出json数据
【发布时间】:2020-12-08 04:47:36
【问题描述】:
[{"Name": "Luke Skywalker", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Darth Vader", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Obi-Wan Kenobi", "Affiliation": "Jedi", "Allegiance": "TO THE REPUBLIC, TO DEMOCRACY!"}, {"Name": "Anakin Skywalker", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Yoda", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Palpatine", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Qui-Gon Jinn", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Jar Jar Binks", "Affiliation": "N/A", "Allegiance": "Possible Sith"}, {"Name": "Darth Maul", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Mace Windu", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Ki-Adi-Mundi", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Kit Fisto", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Eeth Koth", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Plo Koon", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Dooku", "Affiliation": "Sith", "Allegiance": ""}]

上面的输出是我用代码得到的:

    data = []
    with open('starwrs.csv') as f:
        for row in csv.DictReader(f):
            data.append(row)

    json_data = json.dumps(data)
    return json_data

但是我如何得到它,使它看起来像实际的 json 数据,比如直接在彼此下面等,而不是我得到的字符串

[{"Name": "Luke Skywalker", "Affiliation": "Jedi", "Allegiance": ""}, 
{"Name": "Darth Vader", "Affiliation": "Sith", "Allegiance": ""}

【问题讨论】:

    标签: python json python-3.x csv


    【解决方案1】:

    使用 json.dumps(json_object, indent=2)...

    import json
    json_data='[{"Name": "Luke Skywalker", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Darth Vader", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Obi-Wan Kenobi", "Affiliation": "Jedi", "Allegiance": "TO THE REPUBLIC, TO DEMOCRACY!"}, {"Name": "Anakin Skywalker", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Yoda", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Palpatine", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Qui-Gon Jinn", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Jar Jar Binks", "Affiliation": "N/A", "Allegiance": "Possible Sith"}, {"Name": "Darth Maul", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Mace Windu", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Ki-Adi-Mundi", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Kit Fisto", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Eeth Koth", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Plo Koon", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Dooku", "Affiliation": "Sith", "Allegiance": ""}]'
    json_object = json.loads(json_data)
    json_formatted_str = json.dumps(json_object, indent=2)
    print(json_formatted_str)
    

    【讨论】:

      【解决方案2】:

      我猜你想漂亮地打印 json。如果是这种情况,请使用此

      json_data = json.dumps(data, indent=4)
      print(json_data)
      

      json.dumps 中的缩进有助于创建使 json 看起来格式化的缩进

      [
          {
              "Name": "Luke Skywalker",
              "Affiliation": "Jedi",
              "Allegiance": ""
          },
          {
              "Name": "Darth Vader",
              "Affiliation": "Sith",
              "Allegiance": ""
          },
          {
              "Name": "Obi-Wan Kenobi",
              "Affiliation": "Jedi",
              "Allegiance": "TO THE REPUBLIC, TO DEMOCRACY!"
          },
          {
              "Name": "Anakin Skywalker",
              "Affiliation": "Jedi",
              "Allegiance": ""
          },
          {
              "Name": "Yoda",
              "Affiliation": "Jedi",
              "Allegiance": ""
          },
          {
              "Name": "Palpatine",
              "Affiliation": "Sith",
              "Allegiance": ""
          },
          {
              "Name": "Qui-Gon Jinn",
              "Affiliation": "Jedi",
              "Allegiance": ""
          },
          {
              "Name": "Jar Jar Binks",
              "Affiliation": "N/A",
              "Allegiance": "Possible Sith"
          },
          {
              "Name": "Darth Maul",
              "Affiliation": "Sith",
              "Allegiance": ""
          },
          {
              "Name": "Mace Windu",
              "Affiliation": "Jedi",
              "Allegiance": ""
          },
          {
              "Name": "Ki-Adi-Mundi",
              "Affiliation": "Jedi",
              "Allegiance": ""
          },
          {
              "Name": "Kit Fisto",
              "Affiliation": "Jedi",
              "Allegiance": ""
          },
          {
              "Name": "Eeth Koth",
              "Affiliation": "Jedi",
              "Allegiance": ""
          },
          {
              "Name": "Plo Koon",
              "Affiliation": "Jedi",
              "Allegiance": ""
          },
          {
              "Name": "Dooku",
              "Affiliation": "Sith",
              "Allegiance": ""
          }
      ]
      

      【讨论】:

      • 您好,谢谢您的回复!但是当我做这个改变时,它并没有改变我在 python 中所做的事情,因为我现在使用 python flask 运行它
      • 数据将以字符串格式存储,不会有缩进。只有在打印时才会看到缩进。
      • 你到底想做什么?
      • 所以我现在正在读取一个 csv 文件,当我执行上面的代码时,它会像字符串一样打印出来,出于某种原因,python 烧瓶似乎只让我这样打印出来,尽管尝试你的缩进提示,就像本地主机说的那样“JSON对象必须是str,bytes或bytearray,而不是list”,是因为python flask我不能正确缩进吗?我正在网络浏览器上查看它
      • 或者有没有办法通过将数据作为字典来做到这一点?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多