argparse能传入字典合适的数据吗
时间: 2023-07-22 08:33:27 浏览: 132
是的,argparse可以接受字典作为输入参数。你可以通过添加一个类型转换函数来完成这个功能。下面是一个示例代码:
```python
import argparse
import ast
def dict_type(string):
"""
自定义类型转换函数,将字符串转换为字典
"""
try:
value = ast.literal_eval(string)
if isinstance(value, dict):
return value
else:
raise argparse.ArgumentTypeError("input is not a valid dictionary")
except ValueError:
raise argparse.ArgumentTypeError("input is not a valid dictionary")
parser = argparse.ArgumentParser()
parser.add_argument('--my_dict', type=dict_type, help='input a dictionary')
args = parser.parse_args()
print(args.my_dict)
```
在上面的代码中,我们定义了一个自定义类型转换函数`dict_type`,它使用`ast.literal_eval`函数将字符串转换为字典。然后我们将这个函数作为`add_argument`的`type`参数传递给`argparse`来解析字典类型的输入参数。
阅读全文