簡體   English   中英

如何將Python對象轉換為正確的字符串表示形式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM