我是Python / Falcon 的新手。如何通过Python中的userId
获取员工详细信息?
猎鹰示例:
import falcon
import json
class ThingsResource:
def on_get(self, req, resp):
resp.status = falcon.HTTP_200
fp = open("jsonparser.json","r")
json_str = fp.read()
print json_str json_content = json.loads(json_str)
json_content = json.dumps(json_content)
print json_content resp.body = (json_content)
api = falcon.API()
things = ThingsResource()
api.add_route('/Employees/userId/{id}', things)
我在这里做错了什么?
jsonparser.json 员工:
{ "Employees" : [{
"userId":"RUPAK",
"jobTitleName":"Developer",
"firstName":"ABC",
"lastName":"Irani",
"preferredFullName":"Romin Irani",
"employeeCode":"E1",
"region":"CA",
"phoneNumber":"408-1234567",
"emailAddress":"romin.k.irani@gmail.com"
}]
}
答案 0 :(得分:0)
您的JSON / Dict:
t = { "Employees" : [ {
"userId":"RUPAK",
"jobTitleName":"Developer",
"firstName":"ABC",
"lastName":"Irani",
"preferredFullName":"Romin Irani",
"employeeCode":"E1",
"region":"CA",
"phoneNumber":"408-1234567",
"emailAddress":"romin.k.irani@gmail.com" }
]
}
员工类:
class Employees():
def on_get(self, json, userID):
for x in json.get('Employees'):
if x.get('userId') == userID:
print x
empl = Employees()
empl.on_get(t, 'RUPAK')
<强>输出:强>
$ python pytest.py
{'emailAddress': 'romin.k.irani@gmail.com', 'phoneNumber': '408-1234567', 'jobTitleName': 'Developer', 'firstName': 'ABC', 'lastName': 'Irani', 'preferredFullName': 'Romin Irani', 'employeeCode': 'E1', 'userId': 'RUPAK', 'region': 'CA'}
如果您需要有关此方法的更多详细信息,请与我们联系。由于你的问题缺乏信息/格式,因此很难理解你在寻找什么。
希望它可以帮到你!
答案 1 :(得分:0)
根据您最近的评论,我假设您有一个Employee
数据库,其中包含一个名为Detail
的表格,您希望用户通过userId
。这将通过请求网址http://www.yourdomain.com/Employees?userId=RUPAK
如果是这种情况,您可以使用userId
从req
对象中读取req.get_params()
并使用带有SELECT
子句的WHERE
语句查询数据库。修改后的代码如下:
import falcon
import json
import MySQLdb
class ThingsResource:
def on_get(self, req, resp):
resp.status = falcon.HTTP_200
db = MySQLdb.connect(host = 'localhost', user = 'root', passwd = '***', db = 'Employee' )
cursor = db.cursor()
userId=req.get_params('userId')
cursor.execute('SELECT * FROM Detail WHERE userId='+userId)
result = cursor.fetchone()
print result
resp.body = json.dumps(result)
api = falcon.API()
things = ThingsResource()
api.add_route('/Employees', things)
如果这样可以解决您的问题,请标记“已回答”,否则请告知我们是否需要进一步的帮助。