在JSON文件中搜索特定值python
我有一个JSON文件,如下所示: 我有一个设备ID列表,我想在JSON中搜索在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文件。使用此模块
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,您可以在打印行下添加“通过”