3 回答

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊
[u'ABC']
將是unicode字符串的單元素列表。美麗的湯總是產(chǎn)生Unicode。因此,您需要將列表轉(zhuǎn)換為單個(gè)unicode字符串,然后將其轉(zhuǎn)換為ASCII。
我不知道你是如何獲得單元素列表的; 內(nèi)容成員將是一個(gè)字符串和標(biāo)簽列表,這顯然不是你擁有的。假設(shè)你總是得到一個(gè)包含單個(gè)元素的列表,并且你的測(cè)試實(shí)際上只是 ASCII,你會(huì)使用這個(gè):
soup[0].encode("ascii")
但是,請(qǐng)仔細(xì)檢查您的數(shù)據(jù)是否真的是ASCII。這非常罕見。更有可能是latin-1或utf-8。
soup[0].encode("latin-1") soup[0].encode("utf-8")
或者你問Beautiful Soup原始編碼是什么,并在此編碼中取回它:
soup[0].encode(soup.originalEncoding)

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可能有一個(gè)包含一個(gè)unicode字符串的列表。在repr此是[u'String']。
您可以使用以下任何變體將其轉(zhuǎn)換為字節(jié)字符串列表:
# Functional style.
print map(lambda x: x.encode('ascii'), my_list)
# List comprehension.
print [x.encode('ascii') for x in my_list]
# Interesting if my_list may be a tuple or a string.
print type(my_list)(x.encode('ascii') for x in my_list)
# What do I care about the brackets anyway?
print ', '.join(repr(x.encode('ascii')) for x in my_list)
# That's actually not a good way of doing it.
print ' '.join(repr(x).lstrip('u')[1:-1] for x in my_list)

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
import json, ast r = {u'name': u'A', u'primary_key': 1}ast.literal_eval(json.dumps(r))
將打印
{'name': 'A', 'primary_key': 1}
添加回答
舉報(bào)