"Shanghai local" is the best expression I can think of. We sometimes add the suffix -an or -er to the end of a city name to describe the persons living there but sometimes this doesn't work very well because the word is awkward to say. I have heard people say, for example, Londoner and New Yorker, but not Los Angeleser or Los Angelesan I think that Shanghaian is pretty awkward so I wouldn't say that. The English language is quick to adopt words from other languages. If there is a word that the people of Shanghai use to describe themselves, a variant of that is probably already used by English-speaking people that need such a word. I just don't know what it is.