Python - Concatenate Python query
Question: I'm using the python-google-places script but I'm facing a problem when
integrating the code into a function called with two parameters: "MyLocation"
and "MyType".

"MyLocation" works well but "MyType" doesn't work.

Code that works (without a variable for "MyType")

    
    
    # Configuration de l'encodage (a mettre dans tous les scripts)
    # encoding: utf-8
    
    ####################################
    ### CLASS
    #################################### 
    def ExtractGoogleHotspots(Location,MyType):
            from googleplaces import GooglePlaces, types, lang
            YOUR_API_KEY = 'XXXXXXX'
            google_places = GooglePlaces(YOUR_API_KEY)
            # You may prefer to use the text_search API, instead.
            query_result = google_places.nearby_search(
                location=Location, #Location could be a name or coordinates in english format : 4.04827,9.70428
                keyword='',
                radius=1000,#Radius in meters (max = 50 000)
                types=[types.TYPE_PHARMACY] #Specify the Type
                ) 
    
            for place in query_result.places:
            # Returned places from a query are place summaries.
                Name = place.name
                Name = Name.encode('utf-8')#Encodage en UTF-8 obligatoire pour éviter les erreurs : "UnicodeEncodeError: 'ascii' codec can't encode character..."
                Latitude = place.geo_location['lat']
                Longitude = place.geo_location['lng']
                # The following method has to make a further API call.
                place.get_details()
                Details = place.details
                Address = place.formatted_address
                Address = Address.encode('utf-8') 
                Phone_International = place.international_phone_number
                Website = place.website
    
            Result = str(MyType) + ";" + Name + ";" + Address + ";" + str(Phone_International) + ";" + str(Latitude) + ";" + str(Longitude)
    + ";" + str(Website)
            print Result
    
    ####################################
    ### Script
    ####################################
    
    Location = "4.04827,9.70428"
    MyType = "DOES_NOT_WORK"
    ExtractGoogleHotspots(Location, MyType)
    

Code that doesn't work:

    
    
        # Configuration de l'encodage (a mettre dans tous les scripts)
        # encoding: utf-8
    
        ####################################
        ### CLASS
        #################################### 
    
    def ExtractGoogleHotspots(Location,Type):
                from googleplaces import GooglePlaces, types, lang
                YOUR_API_KEY = 'XXXXXXX'
                google_places = GooglePlaces(YOUR_API_KEY)
                MyType = "[types.TYPE_"+Type+"]"
                # You may prefer to use the text_search API, instead.
                query_result = google_places.nearby_search(
                    location=Location, #Location could be a name or coordinates in english format : 4.04827,9.70428
                    keyword='',
                    radius=1000,#Radius in meters (max = 50 000)
                    types=MyType #Specify the Type
                    ) 
    
                for place in query_result.places:
                # Returned places from a query are place summaries.
                    Name = place.name
                    Name = Name.encode('utf-8')#Encodage en UTF-8 obligatoire pour éviter les erreurs : "UnicodeEncodeError: 'ascii' codec can't encode character..."
                    Latitude = place.geo_location['lat']
                    Longitude = place.geo_location['lng']
                    # The following method has to make a further API call.
                    place.get_details()
                    Details = place.details
                    Address = place.formatted_address
                    Address = Address.encode('utf-8') 
                    Phone_International = place.international_phone_number
                    Website = place.website
    
                    Result = str(MyType) + ";" + Name + ";" + Address + ";" + str(Phone_International) + ";" + str(Latitude) + ";" + str(Longitude)
            + ";" + str(Website)
                    print Result
    
            ####################################
            ### Script
            ####################################
    
            Location = "4.04827,9.70428"
            MyType = "PHARMACY"
            ExtractGoogleHotspots(Location, MyType)
    

How to resolve the problem to have a variable to define the Types part?


Answer: To concatenate the type name with `TYPE_` in take it from `types` you can use
`getattr`

    
    
    MyTypes = [ getattr(types, 'TYPE_' + Type.upper() ]
    

