Difficulty w/json keys

Terry Reedy tjreedy at udel.edu
Fri Apr 23 21:17:24 CEST 2010


On 4/23/2010 10:20 AM, Red wrote:
> My apologies for what is probably a simple question to most on this
> group. However, I am new to python and very new to json.
>
> I am trying to read in a json file from a twitter download. There are,
> generally, two types of lines: those lines with "text" and the other
> lines.  I am only interested in the lines with "text".  I am also only
> interested in lines with "lang":"en", but I haven't gotten far enough
> to implement that condition in the code snippets below.
>
> I have gotten Option 2 below to sort of work.  It works fine for
> 'text', but doesn't work for 'lang'.

You do not define 'work', 'sort of work', and "doesn't work".

> FWIW I am using Python 2.6.4
>
> Can someone tell me what I'm doing wrong with the following code
> snippets and/or point me toward an example of an implementation?
>
> Many thanks for your patience.
>
> ---------------------------------
>
> import sys
> import json
>
> f = open(sys.argv[1])
>
> #option 1
>
> for line in f:
> 	j = json.loads(line)
> 	try:
> 		'text' in j

This does not raise an exception when false

> 		print "TEXT:  ", j

so this should always print.
Forget this option.


> 	except:
> 		print "EXCEPTION:   ", j
> 		continue
> 	else:
> 		text=j['text']
> ----snip --------
>
>
>
>
> #option 2	does basically the same thing as option 1 ,

Not at all when 'text' in not in j.


  but also looks
> for 'lang'
>
> for line in f:
> 	j = json.loads(line)
> 	if 'text' in j:
> 		if 'lang' in j:
> 			lang = j['lang']
> 			print "language", lang
> 		text = j['text']
> ----snip --------

tjr




More information about the Python-list mailing list