我嘗試使用 拆分 json 資料data[1:],但不起作用。
更具體地說,我想要做的是忽略 .json 的第一個物件陣列,但將其余部分保留在變數中
py
f = open("people_data.json", "r")
data = json.load(f)
people = data[1:]
# irrelevant code
JSON
{
"variable_id": [
{
"name": "anybody",
"age": "25",
"job": "insurance company"
}
],
"Skills": [
{
"area": "programmer",
"level": "junior",
"comments": "..."
}
],
"other": [
{
"something": "..."
}
]
我的目標是擁有一個包含技能和其他人的變數,但沒有個人資料。
這只是一個例子,因為問題是我不知道以下陣列的名稱是什么,因為它們將是變數而不是技能或其他名稱
uj5u.com熱心網友回復:
您的資料是 a dict,而不是 a list,因此切片不可用。(還有一個哲學問題,您是否可以假設這variable_id是第一項:Pythondict是按插入排序的,但 JSON 物件不是。)
最簡單的方法是簡單地洗掉您不想要的密鑰。
with open("people_data.json") as f:
data = json.load(f)
people = dict(data)
people.pop("variable_id")
# Or just data.pop("variable_id") if you don't care about preserving the original dict.
uj5u.com熱心網友回復:
那是結構資料的誤導。在 Python 中,語言中存在許多內置結構,如串列、元組、字典和 json,您正在使用將一種結構訪問到另一種結構的方法。
串列由從 0(零)開始的位置索引訪問,例如:
l = [1,2,3]
l[0] # 1
l[2] # 2
在字典中,我們使用鍵來獲取值:
d = {'key':'value','key2':'value2'}
d['key'] # 'value'
d['key2'] # 'value2'
因此,在您的示例中,您可以使用:
f = open("people_data.json", "r")
data = json.load(f)
people['skills'] # print a list of dicts
# [
# {
# "area": "programmer",
# "level": "junior",
# "comments": "..."
# }
# ]
如果你不知道字典中的鍵,你可以迭代它們:
keys = d.keys()
d[keys[0]] # for the first result returned by the keys() method
參考資料:資料結構
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/403358.html
標籤:
