问题描述
我正在尝试使用 python 模块 JSON
将 Toml
文件转换为 toml
文件,但由于某种未知原因,该模块似乎跳过了一些重要的键/值对我来说。有谁知道是什么问题?
JSON 文件:
{"amqp_url": "amqps://fedora:@rabbitmq.fedoraproject.org/%2Fpublic_pubsub","callback": "fedora_messaging.example:printer","tls": {"ca_cert": "/etc/fedora-messaging/cacert.pem","keyfile": "/etc/fedora-messaging/fedora-key.pem","certfile": "/etc/fedora-messaging/fedora-cert.pem"},"client_properties": {"app": "Example Application","app_url": "https://github.com/fedora-infra/fedora-messaging","app_contacts_email": ["[email protected]"]},"exchanges": {"amq.topic": {"type": "topic","durable": true,"auto_delete": false,"arguments": {}}},"queues": {"00000000-0000-0000-0000-000000000000": {"durable": false,"auto_delete": true,"exclusive": true,"bindings": [{"queue": "00000000-0000-0000-0000-000000000000","exchange": "amq.topic","routing_keys": ["#"]}],"consumer_config": {"example_key": "for my consumer"},"qos": {"prefetch_size": 0,"prefetch_count": 25},"log_config": {"version": 1,"disable_existing_loggers": true,"formatters": {"simple": {"format": "[%(levelname)s %(name)s] %(message)s"}},"handlers": {"console": {"class": "logging.StreamHandler","formatter": "simple","stream": "ext://sys.stdout"}},"loggers": {"fedora_messaging": {"level": "INFO","propagate": false,"handlers": ["console"]},"twisted": {"level": "INFO","pika": {"level": "WARNING","handlers": ["console"]}},"root": {"level": "ERROR","handlers": ["console"]}}}
预期文件:
amqp_url = "amqps://fedora:@rabbitmq.fedoraproject.org/%2Fpublic_pubsub"
callback = "fedora_messaging.example:printer"
[tls]
ca_cert = "/etc/fedora-messaging/cacert.pem"
keyfile = "/etc/fedora-messaging/fedora-key.pem"
certfile = "/etc/fedora-messaging/fedora-cert.pem"
[client_properties]
app = "Example Application"
app_url = "https://github.com/fedora-infra/fedora-messaging"
app_contacts_email = ["[email protected]"]
[exchanges."amq.topic"]
type = "topic"
durable = true
auto_delete = false
arguments = {}
[queues.00000000-0000-0000-0000-000000000000]
durable = false
auto_delete = true
exclusive = true
arguments = {}
[[bindings]]
queue = "00000000-0000-0000-0000-000000000000"
exchange = "amq.topic"
routing_keys = ["#"]
[consumer_config]
example_key = "for my consumer"
[qos]
prefetch_size = 0
prefetch_count = 25
[log_config]
version = 1
disable_existing_loggers = true
[log_config.formatters.simple]
format = "[%(levelname)s %(name)s] %(message)s"
[log_config.handlers.console]
class = "logging.StreamHandler"
formatter = "simple"
stream = "ext://sys.stdout"
[log_config.loggers.fedora_messaging]
level = "INFO"
propagate = false
handlers = ["console"]
[log_config.loggers.twisted]
level = "INFO"
propagate = false
handlers = ["console"]
[log_config.loggers.pika]
level = "WARNING"
propagate = false
handlers = ["console"]
[log_config.root]
level = "ERROR"
handlers = ["console"]
转载文件:
amqp_url = "amqps://fedora:@rabbitmq.fedoraproject.org/%2Fpublic_pubsub"
callback = "fedora_messaging.example:printer"
[[bindings]]
queue = "00000000-0000-0000-0000-000000000000"
exchange = "amq.topic"
routing_keys = [ "#",]
[tls]
ca_cert = "/etc/fedora-messaging/cacert.pem"
keyfile = "/etc/fedora-messaging/fedora-key.pem"
certfile = "/etc/fedora-messaging/fedora-cert.pem"
[client_properties]
app = "Example Application"
app_url = "https://github.com/fedora-infra/fedora-messaging"
app_contacts_email = [ "[email protected]",]
[consumer_config]
example_key = "for my consumer"
[qos]
prefetch_size = 0
prefetch_count = 25
[log_config]
version = 1
disable_existing_loggers = true
[exchanges."amq.topic"]
type = "topic"
durable = true
auto_delete = false
[queues.00000000-0000-0000-0000-000000000000]
durable = false
auto_delete = true
exclusive = true
[log_config.root]
level = "ERROR"
handlers = [ "console",]
[exchanges."amq.topic".arguments]
[queues.00000000-0000-0000-0000-000000000000.arguments]
[log_config.formatters.simple]
format = "[%(levelname)s %(name)s] %(message)s"
[log_config.handlers.console]
class = "logging.StreamHandler"
formatter = "simple"
stream = "ext://sys.stdout"
[log_config.loggers.fedora_messaging]
level = "INFO"
propagate = false
handlers = [ "console",]
[log_config.loggers.twisted]
level = "INFO"
propagate = false
handlers = [ "console",]
[log_config.loggers.pika]
level = "WARNING"
propagate = false
handlers = [ "console",]
例如,复制的文件跳过了大部分空键/值对:arguments = {}
这是我的代码:
import toml
import json
with open("config.json") as source:
config = json.loads(source.read())
with open("conf1.toml","w") as f:
f.write(toml.dumps(config))
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)