正規表現を含む文字列をjson.dumpsで正しくエンコードする方法を知っている人はいますか?またはこれを正しく処理するjson.dumpsを使用しないJSONペイロードのデータをエンコードする別の方法がある場合は、例えばPythonエンコード文字列に正規表現が含まれている場合の特殊JSON文字?
:
import json
MyString = 'regex "Network\sInformation:[\s\S]+?Workstation\sName:\t+(?<src_host>[^\r]+)"'
data = {}
data['MyString'] = MyString
data['date'] = '2017-09-18T11:28:06'
json_data = json.dumps(data)
print json_data
が生成されます:
{
"date": "2017-09-18T11:28:06",
"MyString": "regex \"Network\\sInformation:[\\s\\S]+?Workstation\\sName:\t+(?<src_host>[^\r]+)\""
}
をただし、APIの結果によって処理[^\\r]
、あるべき、[^\r]
が適切にエスケープされていないことに気づくでしょう解析エラーが発生しました。
最後に、私がここで構築していJSONペイロードはこれと同様の要求を、使用してWeb APIに提出されます。
requests.post(url, auth=(uname, passwd), data=json_data, headers=headers)
注:私は単にの束を発行関数を作成すると考えられていますこれを手動でエンコードするコマンドを置き換えてください。これは現時点での私のプランBですが、私はこれを行うために利用できるソリューション/モジュールが既に存在することを願っています。
doh !!!ありがとうございました!それは完璧な意味合いがあり、すべてが世界で再び正しいです。 – user3246693