[英]How to convert a Python object into the correct string representation
關於使用“ hasattr”或“ isinstance來確定對象類型的爭論很多。但是,在這種情況下,我正在嘗試為numexpr
建立查詢,我需要引用字符串,而不是其他值。我打算使用以下代碼:
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化的方式來實現這段代碼?
輸入樣例:
key_map = {'symbol':'APPL', 'price':698.38'}
在上面的示例中,我想引用APPL,因為它是一個字符串,而不是698.38,因為它是一個浮點數。
問候
我認為您可能想要的是:
value = repr(v)
此外,您的后半部分從不value
。
然而,令我印象深刻的一件事是您的引號。 假設您要用引號引起來的字符串已經包含引號。 @Eric提出的答案為您解決了這一問題,如果有的話,它將正確處理轉義字符串中的引號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.