0

我是 Python/ Falcon的新手。如何userId在 Python 中获取员工详细信息?

猎鹰.py

猎鹰示例:

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"
    }]

}
4

2 回答 2

0

根据您最近的评论,我假设您有一个Employee带有名为的表的数据库,Detail并且您希望用户通过userId. 这将通过请求 URL http://www.yourdomain.com/Employees?userId=RUPAK来实现

如果是这种情况,您可以使用带有子句的语句userIdreq对象中读取req.get_params()和查询您的数据库。您修改后的代码如下:SELECTWHERE

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)

如果这解决了您的问题,请标记“已回答”,否则如果您需要进一步的帮助,请告诉我。

于 2017-08-16T06:42:42.777 回答
0

你的 JSON/字典:

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'}

如果您需要有关该方法的更多详细信息,请告诉我。就目前而言,由于您的问题中缺乏信息/格式,因此很难理解您在寻找什么。

希望对你有帮助!

于 2017-05-27T07:57:06.587 回答