python解析jason數據

 

今天在觀察python腳本的時候,看到了python解析jason數據這麼一段。

經過相關查找,終於弄清楚了python是怎麼解析jason結構,取得數據的。

 

我們通過以下命令:

 

    target = urlopen(url, 'utf8')
    try:
        target = json.loads(target)
    except:
        print 'load json error!!'
 

 

取得了這麼一段jason數據:

{
    "title": "報表",
    "tables": {
        "example1": {
            "id": "first",
            "values": [
                {
                    "key": "one",
                    "value": "1234"
                },
                {
                    "key": "two",
                    "value": "12345"
                },
                {
                    "key": "three",
                    "value": "123456"
                },
            ]
        },
        "example2": {
            "id": "second",
            "values": [
                {
                    "key": "four",
                    "value": "321"
                },
                {
                    "key": "five",
                    "value": "4321"
                },
        },
    }
}
 

我們應該如何拿到裏面的數據呢?比如說拿到key爲“three”,value爲“123456”的值,那麼我們可以這樣獲取數據:

 

 

 

get_value = target['tables']['example1']['values'][2]['value']

 

 

首先,需要理解jason的結構:

 

 寫道
JSON建構於兩種結構:
“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解爲對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。
值的有序列表(An ordered list of values)。在大部分語言中,它被理解爲數組(array)。

 

 

 寫道
JSON具有以下這些形式:

對象是一個無序的“‘名稱/值’對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結束。每個“名稱”後跟一個“:”(冒號);“‘名稱/值’ 對”之間使用“,”(逗號)分隔。



 

數組是值(value)的有序集合。一個數組以“[”(左中括號)開始,“]”(右中括號)結束。值之間使用“,”(逗號)分隔。



 

值(value)可以是雙引號括起來的字符串(string)、數值(number)、true、false、 null、對象(object)或者數組(array)。這些結構可以嵌套。



 

 

而python會把對應的jason結構翻譯過來,對應的關係如下:

 

  JSON  Python
object dict
array list
string unicode
number (int) int, long
number (real) float
true True
false False
null None

 

 

所以我們使用 get_value = target['tables']['example1']['values'][2]['value'] 就可以得到“123456”這個值。

同理,使用 get_value = target['tables']['example2']['values'][0]['key']就可以得到“four”這個值了。

 

本文只是簡單的分析,並沒有深入研究,

待到對python的學習再深入一點再回頭來看看,應該會有很大的改進!

:)

 

 

參考:http://www.json.org/json-zh.html

http://docs.python.org/library/json.html

發佈了55 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章