【问题标题】:How to get employee detail by userId in Python/Falcon如何在 Python/Falcon 中通过 userId 获取员工详细信息
【发布时间】:2023-03-23 15:11:02
【问题描述】:

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

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

}

【问题讨论】:

  • id = t.get('Employees')[0].get('userId') 我想你可以从这里得到它。只需声明 on_get 方法并循环通过 Employees 直到你得到你想要的结果。
  • @iamdanchiv 谢谢你的回答。但你能简单解释一下吗?

标签: python falcon


【解决方案1】:

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

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

希望对你有帮助!

【讨论】:

  • 我无法以格式发布。你能告诉我我的错误吗? import falcon import json class ThingsResource: def on_get(self, req, resp, json, userId): resp.status = falcon.HTTP_200 fp = open("jsonparser.json","r") x = fp.read() for x in json.get('Employees'): if x.get('userId') == userID: print x json_content = json.loads(x) json_content1 = json.dumps(json_content) resp.body = (json_content1) api = falcon.API() things = ThingsResource() api.add_route('/Employees/RUPAK', things)
  • 我在 python 中以这种方式连接了数据库(db=Employee,table=Detail)。文件名 db_connection.py 。现在我想(on_get 和 on_post)通过 user_id 在 python falcon 导入 MySQLdb 中的数据库尝试: db = MySQLdb.connect(host = 'localhost', user = 'root', passwd = '***', db = ' Employee' ) 除了 Exception as e: sys.exit('We can't get into the database') cursor = db.cursor() cursor.execute('SELECT * FROM Detail') result = cursor.fetchone() 打印结果跨度>
【解决方案2】:

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

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

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-02-22
    • 2020-10-08
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    相关资源
    最近更新 更多