Having a weakness for is a common phrase that refers to indulging in something you know you shouldn't or find difficult to resist. If you want to add variety to your vocabulary and express this idea in different ways, here are some synonyms you can use instead: have a soft spot for, be attracted to, be fond of, be partial to, have a liking for, have a penchant for, have a predilection for, have a proclivity for, have a weakness for, have an inclination for, have an affinity for, have an affection for, have an appetite for, have a taste for. Choose the one that suits your writing style and context.