I believe I am indirectly assisting you with this issue but for the benefit of others this is how you would accomplish the result. You can do this two ways:

Using only the ArcGIS API for Python:

It is recommended to use an in-memory python dictionary object.

Since we're dealing with a Web Map you don't want to use data=jsonfile.json. Rather, you want to set the aforementioned in-memory dictionary as the value of the ‘text’ attribute in the 'item_properties' argument. This is explained here: arcgis.gis module — arcgis 1.5.1 documentation

text

Optional string. For text based items such as Feature Collections & WebMaps

I used a simplified version of your original JSON so you'll just need to add/update the parts you need...

# Fill this out as you see fit, the key part is the "text" attributeitem_properties_dict ={"type":"Web Map","title":"Test Map","tags":["test","basemap","pythonapi"],"snippet":"This is a snippet","text":data}

# Again, fill this out as you see fit with the key part being the "text" attributeitem_properties_dict ={"type":"Web Map","title":"Test Map","tags":["test","basemap","pythonapi"],"snippet":"This is a snippet","text":data}

I believe I am indirectly assisting you with this issue but for the benefit of others this is how you would accomplish the result. You can do this two ways:

Using only the ArcGIS API for Python:

It is recommended to use an in-memory python dictionary object.

Since we're dealing with a Web Map you don't want to use data=jsonfile.json. Rather, you want to set the aforementioned in-memory dictionary as the value of the ‘text’ attribute in the 'item_properties' argument. This is explained here: arcgis.gis module — arcgis 1.5.1 documentation

text

Optional string. For text based items such as Feature Collections & WebMaps

I used a simplified version of your original JSON so you'll just need to add/update the parts you need...

# Fill this out as you see fit, the key part is the "text" attributeitem_properties_dict ={"type":"Web Map","title":"Test Map","tags":["test","basemap","pythonapi"],"snippet":"This is a snippet","text":data}

# Again, fill this out as you see fit with the key part being the "text" attributeitem_properties_dict ={"type":"Web Map","title":"Test Map","tags":["test","basemap","pythonapi"],"snippet":"This is a snippet","text":data}

No problem. If anyone out there is interested, you can greatly simplify your work by creating a Web Map with some sample data and adding whatever styles, labels, options, etc. From there, you can go to (where itemID is the item id of the Web Map):