When I try to add and then check file with notepad, it doesn’t show dictionary. List and array ok but why not dictionary ?
Unity does not serialize Dictionary<TKey,TValue> for various reasons. The short version is, no, you cannot add a dictionary to a ScriptableObject and then use it via the inspector.
One of the easiest solutions in the vanilla editor (as in, no third party plugins or add-ons) to this problem is to implement the ISerializationCallbackReceiver interface for your ScriptableObject. I can confirm that this works for ScriptableObjects. What you can do with that interface is serializing a list that contains objects both containing a key and a value or two separate lists, one for the keys and one for the values and then use the callbacks from the interface to “switch” between your list(s) and the dictionary.
This still won’t show the dictionary in your inspector, however, it enables you to use dictionary functionality at runtime/in the editor after deserialization happens.