The .get would be used when accessing the users dictionary. You can add a second parameter to the call as the default (in case you don't find such a key), which in the first call you should output a empty dictionary, so that the second .get doesn't fail.
lb = list(map(lambda m: (m, users.get(m.id, {}).get("xp"), message.server.members))
Since you are making a list out of it, you may also want to try (the somewhat more pythonic) list comprehension (not that your line has anything wrong with it):
lb = [ (m, users.get(m.id, {}).get("xp") for m in message.server.members ]
Note that both approaches will return a None item when the get doesn't find the Key in the dictionary, you can ommit this using an if clause in the list comprehension:
lb = [ (m, users.get(m.id, {}).get("xp") for m in message.server.members if m.id in users ]
As a side note, I would add that you have included everything within the context manager clause (with open():), while only the line where you load its contents is necessary. It would be best practice to de-indent the rest of your code.