Google Chart API, HTTP POST request format.

Chris Rebert clp2 at rebertia.com
Thu Jan 6 05:57:24 EST 2011


On Wed, Jan 5, 2011 at 11:21 PM, Garland Fulton <stackslip at gmail.com> wrote:
> On Wed, Jan 5, 2011 at 7:26 PM, Tim Harig <usernet at ilthio.net> wrote:
>>
>> On 2011-01-06, Slie <stackslip at gmail.com> wrote:
>> [reformated to <80 columns per RFC 1855 guidelines]
>> > I have read several examples on python post requests but I'm not sure
>> > mine needs to be that complicated.
>>
>> >From the HTML example on the page you posted:
>>
>>    <form action='https://chart.googleapis.com/chart' method='POST'>
>>        <input type="hidden" name="cht" value="lc"  />
>>        <input type="hidden" name="chtt" value="This is | my chart"  />
>>        <input type='hidden' name='chs' value='600x200' />
>>        <input type="hidden" name="chxt" value="x,y" />
>>        <input type='hidden' name='chd' value='t:40,20,50,20,100'/>
>>        <input type="submit"  />
>>    </form>
>>
>> you can retreive the same chart from Python:
>>
>>    Python 3.1.2 (r312:79147, Oct  9 2010, 00:16:06)
>>    [GCC 4.4.4] on linux2
>>    Type "help", "copyright", "credits" or "license" for more information.
>>    >>> import urllib.request, urllib.parse
>>    >>> params = urllib.parse.urlencode({'cht':'lc', 'chtt':'This is | my
>>    >>> chart',
>>    ...         'chs':'600x200', 'chxt':'x,y', 'chd':'t:40,20,50,20,100'})
>>    >>> chart =
>> urllib.request.urlopen('https://chart.googleapis.com/chart',
>>    ...         data = params).read()
>>    >>> chartFile = open("chart.png", 'wb')
>>    >>> chartFile.write(chart)
>>    10782
>>    >>> chartFile.close()
>> --
>> http://mail.python.org/mailman/listinfo/python-list
>
> Hope this isn't to stupid,
> For the
> chart = urllib.request.urlopen('https://chart.googleapis.com/chart', data =
> params).read()
> Where would I find information on why and what the ).read() part does.

http://docs.python.org/py3k/library/urllib.request.html#urllib.request.urlopen
Specifically: "This function returns a file-like object" (representing
the stream of data received). Thus, .read() on the file-like object
returns the actual bytes obtained from the given URL.

Cheers,
Chris
--
http://blog.rebertia.com



More information about the Python-list mailing list