Hi Jayanth/Prashant,

Either "the duplicates to be loaded" or "An ouput of all the duplicate key 
names in a JSON file" should be fine for me :-)

NOTE: JSON file consits of more than 2 lakhs LOC

Lokesh



On Friday, 21 March 2014 3:17 PM, Jayanth Koushik <jnkous...@gmail.com> wrote:
 
Hi Prashant

I think he wants the duplicates to be loaded, not cause an exception.

Jayanth




On Fri, Mar 21, 2014 at 3:15 PM, Prashant Gaur <91prashantg...@gmail.com> wrote:

Hi Lokesh,
>
>
>we can pass lookup while parsing your json file which will make sure that name 
>is repetitive or not .
>
>
>import json
>
>
>def duplicate_checking_hook(pairs):
>
>    ''' lookup for duplicate names'''
>
>    result = dict()
>
>    for key, val in pairs:
>
>        if key in result:
>
>            raise KeyError('Duplicate Key specified: %s % key)
>
>        result[key] = val
>
>    return result
>
>>>> json.loads('''{"test":"hi","test":"bye"}''', 
>>>> object_pairs_hook=duplicate_checking_hook)
>Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
>  File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
>    return cls(encoding=encoding, **kw).decode(s)
>  File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
>    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
>  File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
>    obj, end = self.scan_once(s, idx)
>  File "<stdin>", line 5, in duplicate_checking_hook
>KeyError: u'Duplicate key specified: a'
>
>
>While
>
>>>> json.loads('''{"test":"hi","test1":"bye"}''', 
>>>> object_pairs_hook=duplicate_checking_hook)
>{u'test': u'hi', u'test1': u'bye'}
>>>>
>
>
>  
>
>
>defdupe_checking_hook(pairs):result =dict()forkey,val inpairs:ifkey 
>inresult:raiseKeyError("Duplicate key specified: %s"%key)result[key]=val 
>returnresult
>
>
>
>
>
>
>On Fri, Mar 21, 2014 at 2:59 PM, lokesh bobby <lokeshbob...@yahoo.com> wrote:
>
>Hi Jayanth,
>>
>>Ideally speaking a JSON shouldn't be created with repetitive key names. But 
>>manually it is possible that a proper JSON file can be appended with a 
>>duplicate key. We need to catch that duplicate key. If we are going to use 
>>json.load(), the repetitive keys of the JSON file wont get loaded. Only the 
>>last occurrence of the key will be there in that loaded data.
>>
>>Instead I want that entire data in JSON file should be loaded. Hoping that 
>>you got the point what I want :-)
>>
>>Thanks,
>>Lokesh.
>>
>>
>>
>>
>>
>>
>>On Friday, 21 March 2014 2:45 PM, Jayanth Koushik <jnkous...@gmail.com> wrote:
>>
>>Hi Lokesh
>>
>>
>>The 'problem' that you talk about isn't really a problem. Since the JSON 
>>specification does not say what is to be done for repeated names, it is up to 
>>the implementation to decide. What is your requirement for handling repeated 
>>names?
>>
>>
>>Jayanth
>>
>>
>>
>>
>>On Fri, Mar 21, 2014 at 2:30 PM, lokesh bobby <lokeshbob...@yahoo.com> wrote:
>>
>>Hi Noufal,
>>>
>>>Thanks for your reply. I am not looking for loading the JSON file. There is 
>>>a limitation in it. Go thru the links
>>>
>>>http://docs.python.org/2/library/json.html#repeated-names-within-an-object
>>>http://docs.python.org/3.2/library/json.html#repeated-names-within-an-object
>>>
>>>In order to get rid of that problem, I am looking for some JSON stream 
>>>parsers.
>>>
>>>Thanks,
>>>Lokesh.
>>>
>>>
>>>
>>>
>>>On Friday, 21 March 2014 2:09 PM, Noufal Ibrahim KV <nou...@nibrahim.net.in> 
>>>wrote:
>>>
>>>On Fri, Mar 21 2014, lokesh bobby wrote:
>>>
>>>
>>>> Hi ALL,
>>>>
>>>> Can you share your thoughts on how to parse a JSON file by using
>>>> python?
>>>
>>>import json
>>>
>>>with open("data.json") as f:
>>>     json.load(f)
>>>
>>>
>>>[...]
>>>
>>>
>>>--
>>>Cordially,
>>>Noufal
>>>http://nibrahim.net.in
>>>_______________________________________________
>>>BangPypers mailing list
>>>BangPypers@python.org
>>>https://mail.python.org/mailman/listinfo/bangpypers
>>>
>>_______________________________________________
>>BangPypers mailing list
>>BangPypers@python.org
>>https://mail.python.org/mailman/listinfo/bangpypers
>>
>
>
>
>-- 
>
>Prashant Gaur 
>
>Mobile : +91 9717353657
>http://gaurprashant.blogspot.in/ 
>http://stackoverflow.com/users/1850358/prashant-gaur
>http://www.about.me/prashantgaur/
>
>
_______________________________________________
BangPypers mailing list
BangPypers@python.org
https://mail.python.org/mailman/listinfo/bangpypers

Reply via email to