簡體   English   中英

從Python字典中將Unicode值轉換為字符串

[英]Converting Unicode Values as String from a Python Dictionary

我已經構建了一個python字典如下:

result = {}
for fc in arcpy.ListFeatureClasses():
    for field in arcpy.ListFields(fc):
        result.setdefault(field.name, []).append(fc)

獲取每個表(要素類)中字段的名稱,並將tyhem設置為字典中的鍵值,然后將表的名稱設置為值。 這很好,因為我的目標是找出哪些表具有相同的字段。 我可以繼續討論這些項目並打印出關鍵值對:

for key, value in result.iteritems():
    print key + ": " +  str(value)

返回:

評論:[u'TM_FC',u'GT_FC',u'HG_FC',u'PO_FC',u'FU_FC']

我想打印出鍵值作為字符串值而不是unicode東西,所以它看起來像這樣:

評論:'TM_FC','GT_FC','HG_FC','PO_FC','FU_FC'

我一直在玩'str'函數和各種其他格式化和轉換為字符串的方法,但我總是返回相同的原始值列表。 任何人都可以建議一種方法來完成我正在尋找的東西嗎?

謝謝,邁克

您的代碼中的問題是您正在調用str(value),其中value是一個數組。 所以會發生的是,數組對象的__str__函數被調用,並且它有自己的方式來生成基礎值的字符串表示。 此默認表示使用repr顯示單個元素的值。 因為在這種情況下數組元素是unicode字符串,所以在輸出中看到'u'。

作為一種解決方案,您要做的是手動“展開”數組並構建自己的列表表示。 這是一種方法:

for key, value in result.iteritems():
    print key + ": " +  ",".join(["'%s'" % v for v in value])

我相信這就是你所追求的

for key, value in result.iteritems():
    print key + ": " +  str([ str(v) for v in value ])
result = {u'Comments':[u'TM_FC', u'GT_FC', u'HG_FC', u'PO_FC', u'FU_FC']}
for k,v in result.iteritems():
    print u'%s:%s' % (k,map(unicode.encode,v))

使用默認編碼簡化字符串格式化,並map以將每個值更改為字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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