"hasattr"또는 "isinstance"를 사용하여 개체 유형을 결정하는 것에 대한 토론이 많습니다. 그러나 numexpr
에 대한 쿼리를 작성하려고하는 상황이 있습니다. 문자열을 인용 할 필요가 있지만 다른 값 나는 다음과 같은 코드를 사용하려고 하였다.Python 개체를 올바른 문자열 표현으로 변환하는 방법
def get_query(key_map):
"""
Generate an equality query, based on key/value
pair in key_map
"""
stmnt = ""
for k,v in key_map.items():
value = '"%s"' % v if isinstance(v, str) else v
if not stmnt:
# first equality in statement
stmnt = "'(%s == %s)" % (k,value)
else:
stmnt += " & (%s == %s)" % (k,value)
if stmnt:
# close statement
stmnt += "'"
return stmnt
나뿐만 아니라 hasattr
를 사용하여 고려 :
value = '"%v"' % v if hasattr(v,'lower') else v
나는 음악 교사가 한 번 괜찮아요 말해 한을 너만큼 규칙을 어기는거야. 지금 정확하게 어떻게 부러 뜨릴 지. 이것은 나에게 그러한 사례 중 하나처럼 보인다. 누구든지이 Python 코드를 구현하는 Python 적 방법에 대한 제안을 갖고 있습니까?
샘플 입력 :
key_map = {'symbol':'APPL', 'price':698.38'}
샘플에서
, 나는 그것이 문자열이기 때문에 APPL을 인용 할 위,하지만 698.38, 그것은 부동이기 때문이다.
안부
값 = ' "% s"'% v 항상 사용하지 않는 이유 –
찾고있는 값이 문자열이 아니기 때문에. 그것이 datetime 객체이거나 float이면 비교가 실패합니다. –
왜 계산 후에 'value'를 사용하지 않습니까? – Eric