Python - 连接Python查询

时间:2016-08-10 21:45:57

标签: python

我正在使用python-google-places脚本,但在将代码集成到使用两个参数调用的函数时,我遇到了问题:" MyLocation"和" MyType"。

" MyLocation"运作良好,但" MyType"不起作用。

有效的代码(没有" MyType&#34的变量;)

# 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)

不起作用的代码:

    # 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)

如何解决问题以使变量定义类型部分?

1 个答案:

答案 0 :(得分:1)

要将类型名称与locByLocID: { 5689: "10S", 8223: "12S" } 连接起来TYPE_,您可以使用types

getattr