I am trying to create new records (rows) in a Sharepoint List using a python script. I am specifying each record as a json containing the display names of columns/fields mapped to their respective values. However I am getting an error saying that the property does not exist. In other words, it's saying that these column names are invalid.

On going through a lot of StackExchange Articles, I observed that we need to use Internal Names instead of Display Names while posting data to sharepoint list from python. Since my internal names are quite random and totally unrelatable to their Display Names, is there any way I can post data using Display Names only, instead of Internal Names ?? Also, is there any way to make Internal Names same/similar to Display Names ??

Kindly help.

1 Answer 1


It's not possible to post data using Display Names. The API requires Internal Name as it could guarantee uniqueness while DN cannot.

Display Name is the name shown to the user. It can contain spaces in special characters.

When display name is created, an Internal Name is derived from it by replacing spaces and special characters with 0xXXXX where XXXX is a Unicode hexadecimal representation of the character being replaced.

For example: My Column Name would be converted to My_0x0020_Column_0x0020_Name. Once the Internal Name is set it cannot be changed even if the Display Name from which it is derived is changed.

It's not difficult to find the internal name: Find the internal name of SharePoint column

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.