Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JSON文件中搜索特定值python_Python_Json - Fatal编程技术网

在JSON文件中搜索特定值python

在JSON文件中搜索特定值python,python,json,Python,Json,我有一个JSON文件,如下所示: 我有一个设备ID列表,我想在JSON中搜索ID的特定值,以获得名称 现在的数据是JSON格式,以前是XML格式的,我以前是这样做的: device = xml.find("devices/device[@id=\'%s\']" %someDeviceID) deviceName = device.attrib['name'] -- 到目前为止,根据在线答案,我已经设法在JSON中搜索了一个jey,但我还没有设法亲自搜索值来阅读我使用的JSON文件。使用此模块

我有一个JSON文件,如下所示:

我有一个设备ID列表,我想在JSON中搜索
ID
的特定值,以获得
名称

现在的数据是JSON格式,以前是XML格式的,我以前是这样做的:

device = xml.find("devices/device[@id=\'%s\']" %someDeviceID)
deviceName = device.attrib['name']
--


到目前为止,根据在线答案,我已经设法在JSON中搜索了一个
jey
,但我还没有设法亲自搜索
值来阅读我使用的JSON文件。使用此模块,我将使用以下代码

from jsondb.db import Database 

db = Database('PATH/TO/YOUR/JSON/FILE')
for device in db['devices']:
    if device['id'] == 'SEARCHEDID':
        print(device['name'])

当然,当您的json联机时,您可以使用将其刮取,然后将其解析到jsondatabase模块中。如果需要的话,请先用
data=json.loads(…)
解析它。你欠我一杯啤酒您可以
导入json
并使用
json.loads(open(filename,'r').read())
将此文件读入python对象,然后执行上面@freakish发布的操作。你欠他一杯啤酒。ETA:使用
data['devices'].get('someDeviceId')
如果你不确定'someDeviceId'是否存在。@当我使用
data['devices']
I get
[{u'id':u'7DD88039CFE09C3',u'name':u'Watchdog 15(内部)},{u'id':u'788B5635DC2EBCD2',u'name':u'Smoke Alarms'},
[“788B5635DC2EBCD2”]
或类似的,它告诉我我需要输入整数而不是字符串。@SuperCiocia啊,
devices
是一个数组。这很公平。然后你必须搜索它,我的朋友。要么将它转换为dict(假设id是唯一的),要么线性搜索:
下一步(如果dev['id']=someId,则为数据中的dev['devices']
。是的。如果您有多个相同的ID,并且想要全部ID,您可以在打印行下添加“通过”