我正在从 shell 调用一个 python 脚本,并带有一个输入参数。
python main.py """{"key1":"value1", "key2":"value2"}"""
所有的键和值都是字符串。在 python 中,我想将 JSON 字符串转换为字典,因此我可以使用键来访问这些值。
我尝试了以下
import json
import sys
dict_in = json.loads(sys.argv[1])
但dict_in
最终会得到一个这样的字符串{key1:value1, key2:value2}
所以似乎我需要找到一种方法将带有引号的字符串从shell传递给python。我不能使用转义字符,因为字符串是由不同的程序提供的。
有没有优雅的方法来解决这个问题?
我找到了一个可以处理这种情况的 python 2 模块。
假设你有这个字符串:
>>> str = '{foo: bar, id: 23}'
然后你可以使用yaml
如下:
>>> import yaml
>>> dict = yaml.load(str)
>>> dict
{'foo': 'bar', 'id': 23}
>>> dict['foo']
'bar'
现在你有你需要的东西。
更多信息(以及 python 3 支持等)可以在这里找到:https : //pyyaml.org/wiki/PyYAMLDocumentation
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句