
[code]

    msg = "辞書登録:ドラえもん_クレヨンしんちゃん"
    
[/code]

これで、

[code]

    {
      "ドラえもん": "クレヨンしんちゃん"
    }
    
[/code]

つまり、メッセージの本文から「辞書登録」を抜いて「ドラえもん」と「クレヨンしんちゃん」だけをjsonで保存したいのですがどうしたらいいですか？


CC BY-SA 3.0
2017-01-13T11:43:50.933
31822
2017-01-19T13:56:40.497
2017-01-13T13:26:21.207
754
20205
question
python
メッセージから文字を抜き出してjsonで保存したい


正規表現で置換するのが簡単かと。  
`^辞書登録:(.+)_(.+)$`を`{\n"$1":"$2"\n}`  
に置換したら良いと思います。

具体的には、正規表現を扱う標準ライブラリの [re](https://docs.python.org/3/library/re.html)
を使って、例えば次のようにできます。

[code]

    import re
    msg = "辞書登録:ドラえもん_クレヨンしんちゃん"
    pat = re.compile(r'^辞書登録:(.+)_(.+)$')
    print(pat.sub( '{\n"\\1" : "\\2"\n}', msg ))
    # {
    # "ドラえもん":"クレヨンしんちゃん"
    # }
    
[/code]


CC BY-SA 3.0
2017-01-13T12:21:44.983
31824
2017-01-19T13:56:40.497
2017-01-19T13:56:40.497
2901
2383
31822
answer


`辞書登録:` が固定の文字列なら、以下のようにすればよさそうです。

[code]

    import json
    
    data = {}
    key, value = msg[5:].split('_')
    data[key] = value
    s = json.dumps(data)
    print(s)
    
[/code]


CC BY-SA 3.0
2017-01-14T13:46:27.323
31848
2017-01-14T13:46:27.323
806
31822
answer