Difficulty w/json keys
Red
WanderingAengus at comcast.net
Fri Apr 23 18:09:51 EDT 2010
On Apr 23, 1:17 pm, Terry Reedy <tjre... at udel.edu> wrote:
> 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
I need to think about the logic here again and see what I'm missing
beyond my original question. Thanks for taking the time to explain.
More information about the Python-list
mailing list