Sometimes PyCall cannot infer that an object is callable, since so many in 
python are (beyond simple functions). In such situations, the workaround is 
to use the "pycall" function in julia directly. See the invocations 
below... 

*julia> **urllib2.Request("http://google.com";)*

*ERROR: type: apply: expected Function, got PyObject*


*julia> **urllib2.urlopen("http://google.com";)*

*PyObject <addinfourl at 4660350848 whose fp = <socket._fileobject object 
at 0x1168f1ed0>>*


*julia> **req = pycall(urllib2.Request, PyAny, "http://google.com";)*

*PyObject <urllib2.Request instance at 0x115c74d40>*


*julia> **f=urllib2.urlopen(req)*

*PyObject <addinfourl at 4660402584 whose fp = <socket._fileobject object 
at 0x1168f76d0>>*


*julia> **f[:read](100)*

*"<!doctype html><html itemscope=\"\" 
itemtype=\"http://schema.org/WebPage\"; lang=\"en-GB\"><head><meta cont"*

On Sunday, 19 July 2015 03:15:28 UTC+1, Dejan Miljkovic wrote:
>
> What would be the right way to execute urllib2 call in julia
>
> using PyCall
> @pyimport urllib2 as urllib2
> request = urllib2.Request(url, json_payload, "{'Content-Type': 
> 'application/json'}")
>
> type: apply: expected Function, got PyObject
> while loading In[29], in expression starting on line 1
>
>
>
> Thanks,
>
> Dejan
>

Reply via email to