簡體   English   中英

在python中存儲json數據

[英]Storing json data in python

有沒有一種方法可以輕松地將json數據存儲在python中的變量中。 我並不是說將整個json放在一個變量中,而是將其解析並存儲為鍵值。

例如-如果這是json文件

[
   [
      1,
      "Apple"
   ],
   [
      2,
      "Orange"
   ],
   [
      3,
      "Grapes"
   ],
   [
      4,
      "Banana"
   ],
   [
      5,
      "Mango"
   ]
]

我想在python中有一個列表或其他一些數據類型,通過它我可以輕松訪問數據。

variable[1]類的東西應該打印Apple等

是。 您可以使用json模塊。 特別是json.loads 但是,如果您還希望數據之間具有鍵值關聯,則需要使用字典:

from json import loads

json_data = \
"""
[
    [1, "Apple"],
    [2, "Orange"],
    [3, "Grapes"],
    [4, "Banana"],
    [5, "Mango"]
]
"""

data = dict(loads(json_data))
print(data)
# {1: u'Apple', 2: u'Orange', 3: u'Grapes', 4: u'Banana', 5: u'Mango'}

毫不奇怪,您需要json模塊。

In [29]: import json

In [30]: data = '''[
    ...:    [
    ...:       1,
    ...:       "Apple"
    ...:    ],
    ...:    [
    ...:       2,
    ...:       "Orange"
    ...:    ],
    ...:    [
    ...:       3,
    ...:       "Grapes"
    ...:    ],
    ...:    [
    ...:       4,
    ...:       "Banana"
    ...:    ],
    ...:    [
    ...:       5,
    ...:       "Mango"
    ...:    ]
    ...: ]'''

In [31]: json.loads(data)
Out[31]: [[1, 'Apple'], [2, 'Orange'], [3, 'Grapes'], [4, 'Banana'], [5, 'Mango']]

該模塊還包含處理文件中數據的功能。

通過數字鍵提取水果名稱的方法有幾種,但是它們都涉及到進一步轉換數據。 例如:

In [32]: fruits = []

In [33]: for key, name in json.loads(data):
    ...:     fruits.append(name)
    ...:

In [34]: fruits[0]
Out[34]: 'Apple'

鑒於鍵以1開頭,因此Python的從零開始的索引在某種程度上破壞了該解決方案的價值。字典可為您提供所需的確切信息。 如果您使用對列表來調用dict構造函數,它將把它們視為鍵,值對。

In [35]: fruits = dict(json.loads(data))

In [36]: fruits[1]
Out[36]: 'Apple'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM