maikati maikati - 1 year ago 75
Python Question

Python splitting values from urllib in string

I'm trying to get IP location and other stuff from, but I'm stuck.

I want to split all of the values into new strings that I can format how I want later. What I wrote so far is:

resp = urllib2.urlopen('').read()
out = resp.replace(";", " ")
print out

Before I replaced the string into new one the output was:


So I made it show only

OK someip somecountry somecountrycode somecity somecity - 42.1975;23.3342 +05:00

But the problem is that this is pretty stupid, because I want to use them not in one string, but in more, because what I do now is
print out
and it outputs this, I want to change it like
print country
print city
and it outputs the country,city etc. I tried checking in their site, there's some class for that but it's for different api version so I can't use it (v2, mine is v3). Does anyone have an idea how to do that?

PS. Sorry if the answer is obvious or I'm mistaken, I'm new with Python :s

Answer Source

You need to split the resp text by ;:

out = resp.split(';')

Now out is a list of values instead, use indexes to access various items:

print 'Country: {}'.format(out[3])

Alternatively, add format=json to your query string and receive a JSON response from that API:

import json

resp = urllib2.urlopen('')
data = json.load(resp)

print data['countryName']
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download