OK, I got a turn around solution.

I installed two shipping methods from add on modules as suggested by Ajeh.

Seven-Zone Zipcode-based shipping module and zone table.
I faced issue with zipcode addon as the table name was changed, but I changed the table name to zen_zipcodezone in the database.

So, now I have a free shipping for the city in which the store is located specified in zip code shipping module and rates as per weight for all other state/zones as specified in zone table shipping module.

Some minor hiccups are there, but are acceptable to start with.

Thanks,