簡體   English   中英

如何在Python中解析JSON文件中的值

[英]How to parse values from a JSON file in Python

我正在嘗試從json文件獲取值,而我得到的錯誤是TypeError: expected string or buffer 我正確解析文件,而且我猜我的json文件格式也正確。 我哪里錯了?

兩個文件都在同一目錄中。

Main_file.py

import json

json_data = open('meters_parameters.json')

data = json.loads(json_data)  // TypeError: expected string or buffer
print data
json_data.close()

meters_parameters.json

{
    "cilantro" : [{
        "cem_093":[{
            "kwh":{"function":"3","address":"286","length":"2"},
            "serial_number":{"function":"3","address":"298","length":"2"},
            "slave_id":{"function":"3","address":"15","length":"2"}
        }]
    }],
    "elmeasure" : [{
        "lg1119_d":[{
            "kwh":{"function":"3","address":"286","length":"2"},
            "serial_number":{"function":"3","address":"298","length":"2"},
            "slave_id":{"function":"3","address":"15","length":"2"}
        }]
    }]
}

loads期望字符串不是文件句柄。 你需要json.load

import json

with open('meters_parameters.json') as f:
    data = json.load(f)
print data

你試圖加載文件的對象,當你要加載的文件的一切。 做:

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

.read()從文件中獲取所有內容並將其作為字符串返回。


這里的with語句也更加pythonic:

with open('meters_parameters.json') as myfile:
    data = json.loads(myfile.read())

暫無
暫無

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

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