【问题标题】:Conversion of list of dictionaries to JSON config file with configparser使用 configparser 将字典列表转换为 JSON 配置文件
【发布时间】:2021-11-09 09:11:37
【问题描述】:

我有以下字典列表

dicts =  [{
    "name": "Header1",
    "names": ["query1","query2","query3","query4","query5","query6"]
}, {
    "name":"Header2",
    "names": ["query1","query2","query3","query4","query5"]
}]

我使用以下代码将其转换为 JSON 文件

with open("testing.json","w") as j:
      json.dump(dicts,j,indent = 2)

我得到以下结果

[
  {
    "name": "Header1",
    "names": [
      "query1",
      "query2",
      "query3",
      "query4",
      "query5",
      "query6"
    ]
  },
  {
    "name": "Header2",
    "names": [
      "query1",
      "query2",
      "query3",
      "query4",
      "query5"
    ]
  }
]

我想知道我是否可以使用配置解析器实现上述结果。

我运行以下代码

config = configparser.ConfigParser()
config.add_section("Queries")
config.set("Queries","Header1",["query1","query2","query3","query4","query5","query6"])

我收到以下错误:

TypeError: option values must be strings

【问题讨论】:

  • configparser 用于 INI 文件。你不能用它创建 JSON。
  • 为什么要这样做? json.dump 怎么了?
  • 使用ConfigParser 这样做有什么意义?
  • 好的,我看到了区别以及 INI 格式是什么。我想把它转换成 JSON,所以 configparser 是不可能的

标签: python json configparser


【解决方案1】:

list 转换为字符串

import configparser

lst = ["query1","query2","query3","query4","query5","query6"]
config = configparser.ConfigParser()
config.add_section("Queries")
config.set("Queries","Header1",",".join(lst))

print(config)

【讨论】:

  • 值得一提的是,INI 文件没有列表数据类型,在读取文件时,必须再次手动将值转换为列表。
  • 我同意这个评论。
猜你喜欢
  • 2014-02-26
  • 1970-01-01
  • 1970-01-01
  • 2018-01-14
  • 2014-03-01
  • 2019-02-01
  • 2021-03-31
  • 2016-01-28
  • 1970-01-01
相关资源
最近更新 更多