86157


str型で以下のような文字列を辞書型に変換しようと試行錯誤しております。  
時間ばかり過ぎてしまいどうにもこうにも行かず質問させて頂きました。

何卒よろしくお願い致します。

辞書に変換したいstr

[code]

    d = "Extension=4321,Type=1211,Port=S00091,Name=modori,Path_1=,"
    
[/code]

作成したい辞書のイメージ

[code]

    {"Extension":4321,"Type":1211,"Port":"S00091","Name":"modori","Path_1":null,}
    
[/code]


CC BY-SA 4.0
2022-02-05T04:40:33.310
86155
2022-02-05T06:04:23.807
2022-02-05T06:04:23.807
3060
51133
question
python
strで羅列された文字を辞書型に変換したい


`null` は文字列にしています。また、数値は全て整数であるとしています。

[code]

    def to_int(val_str):
        if not val_str:
            return 'null'
        try:
            i = int(val_str)
        except ValueError:
            i = val_str
        return i
    
    d = "Extension=4321,Type=1211,Port=S00091,Name=modori,Path_1=,"
    dic = {k: to_int(v) for k, v in [i.split('=') for i in d.split(',') if i]}
    print(dic)
    
    #
    {'Extension': 4321, 'Type': 1211, 'Port': 'S00091', 'Name': 'modori', 'Path_1': 'null'}
    
[/code]


CC BY-SA 4.0
2022-02-05T05:25:00.860
86157
2022-02-05T05:25:00.860
47127
86155
answer