python - JSON फ़ाइल से मूल्यों को पार्स करना?




parsing (5)

"अल्ट्रा JSON" या बस "ujson" आपके JSON फ़ाइल इनपुट में [] को संभाल सकता है। यदि आप JSON तत्वों की सूची के रूप में अपने प्रोग्राम में JSON इनपुट फ़ाइल पढ़ रहे हैं; जैसे, [{[{}]}, {}, [], etc...] ujson शब्दकोशों की सूचियों, सूचियों के शब्दकोशों के किसी भी मनमाना क्रम को संभाल सकता है।

आप पाइथन पैकेज इंडेक्स में यूजसन पा सकते हैं और एपीआई पाइथन की अंतर्निहित जेसन लाइब्रेरी के लगभग समान है।

यदि आप बड़ी JSON फ़ाइलों को लोड कर रहे हैं तो यूजसन भी तेज़ है। आप प्रदान किए गए एक ही लिंक में अन्य पायथन JSON पुस्तकालयों की तुलना में प्रदर्शन विवरण देख सकते हैं।

मेरे पास यह JSON फ़ाइल में है:

{
    "maps": [
        {
            "id": "blabla",
            "iscategorical": "0"
        },
        {
            "id": "blabla",
            "iscategorical": "0"
        }
    ],
    "masks": [
        "id": "valore"
    ],
    "om_points": "value",
    "parameters": [
        "id": "valore"
    ]
}

मैंने इस स्क्रिप्ट को लिखा जो सभी जेसन पाठ को प्रिंट करता है:

json_data=open(file_directory).read()

data = json.loads(json_data)
pprint(data)

मैं फ़ाइल को पार्स कैसे कर सकता हूं और एकल मान निकाल सकता हूं?


@ जस्टिन छील का जवाब वास्तव में सहायक है, लेकिन यदि आप पाइथन 3 का उपयोग कर रहे हैं तो JSON को इस तरह किया जाना चाहिए:

with open('data.json', encoding='utf-8') as data_file:
    data = json.loads(data_file.read())

नोट: json.loads बजाय json.loads उपयोग करें। पायथन 3 में, json.loads एक स्ट्रिंग पैरामीटर लेता है। json.load एक फ़ाइल की तरह वस्तु पैरामीटर लेता है। data_file.read() एक स्ट्रिंग ऑब्जेक्ट देता है।


मुझे लगता है कि इग्नासिओ क्या कह रहा है कि आपकी JSON फ़ाइल गलत है। आपके पास [] जब आपके पास {} होना चाहिए। [] सूचियों के लिए हैं, {} शब्दकोश के लिए हैं।

यहां बताया गया है कि आपकी JSON फ़ाइल कैसे दिखनी चाहिए, आपकी JSON फ़ाइल मेरे लिए भी लोड नहीं होगी:

{
    "maps": [
        {
            "id": "blabla",
            "iscategorical": "0"
        },
        {
            "id": "blabla",
            "iscategorical": "0"
        }
    ],
    "masks": {
        "id": "valore"
    },
    "om_points": "value",
    "parameters": {
        "id": "valore"
    }
}

फिर आप अपने कोड का उपयोग कर सकते हैं:

import json
from pprint import pprint

data = json.load(open('data.json'))

pprint(data)

डेटा के साथ, अब आप इस तरह के मान भी पा सकते हैं:

data["maps"][0]["id"]
data["masks"]["id"]
data["om_points"]

उनको आज़माएं और देखें कि क्या यह समझ में आता है या नहीं।


यदि आप अजगर 3 में हैं तो यह है कि आप इसे कैसे कर सकते हैं

{
  "connection1": {
    "DSN": "con1",
    "UID": "abc",
    "PWD": "1234",
    "connection_string_python":"test1"
  }
  ,
  "connection2": {
    "DSN": "con2",
    "UID": "def",
    "PWD": "1234"
  }
}

कोड को लगता है कि कनेक्शन.जेसन फ़ाइल ऊपर की तरह दिखता है

connection_file = open('connection.json', 'r')
conn_string = json.load(connection_file)
conn_string['connection1']['connection_string_python'])
connection_file.close()
>>>test1

data = []
with codecs.open('d:\output.txt','rU','utf-8') as f:
    for line in f:
       data.append(json.loads(line))




parsing