Python解码还是正则表达式?
我有一个Python解码还是正则表达式?,python,regex,unicode,Python,Regex,Unicode,我有一个dict是从网络上刮下来的,但是它伴随着这个unicode问题: {'track': [u'\u201cAnxiety\u201d', u'\u201cLockjaw\u201d [ft. Kodak Black]', u'\u201cMelanin Drop\u201d', u'\u201cDreams\u201d', u'\u201cIntern\u201d', u'\u20
dict
是从网络上刮下来的,但是它伴随着这个unicode
问题:
{'track': [u'\u201cAnxiety\u201d',
u'\u201cLockjaw\u201d [ft. Kodak Black]',
u'\u201cMelanin Drop\u201d',
u'\u201cDreams\u201d',
u'\u201cIntern\u201d',
u'\u201cYou Don\u2019t Think You Like People Like Me\u201d',
u'\u201cFirst Day Out tha Feds\u201d',
u'\u201cFemale Vampire\u201d',
u'\u201cGirlfriend\u201d',
u'\u201cOpposite House\u201d',
u'\u201cGirls @\u201d [ft. Chance the Rapper]',
u'\u201cI Am a Nightmare\u201d']}
使用regex
,或者有什么解码
方法,哪种方法是去除这些字符的最佳方法
怎么说呢?这些是引语(“和”)。如果您只想在字符串的开头或结尾除去它们,则最简单的方法是除去它们
>>> u'\u201cAnxiety\u201d'.strip(u'\u201c\u201d')
u'Anxiety'
如果要清除字符串中的任何位置,请使用替换它们:
>>> u'\u201cAnxiety\u201d'.replace(u'\u201c', '').replace(u'\u201d', '')
u'Anxiety'
更好的可读性解决方案(在我看来):
快速解释:dict['track']
,是a
字典中唯一的第一个值,是字符串列表,每个字符串都有不必要的u'\u201c'
和u'\u201d'
。
我们在Python中使用它来遍历该列表,对于该列表中的每个字符串,x
将其u'\u201c'
和u'\u201d'
替换为空白字符串'
,这会使它们消失
如果您的字典中有多个值,或除'track'
之外的其他键,并且希望使此代码更通用,并适用于具有任何键名称的每个字典,我们可以迭代字典中的值,并将上述代码应用于字典的所有值:
for k,v in dict.items():
dict[k] = [x.replace(u'\u201c', '').replace(u'\u201d', '') for x in v]
这些是左引号和右引号。是否确实要从数据中删除所有带卷引号的字符?或者可以用常规引号替换:u'\u201cAnxiety\u201d'.replace(u'\u201c',“”).replace(u'\u201d',“”)
@elethan Yes,这也是一个有趣的想法。解释一下你的答案如何解决这个问题会很有用。虽然这个代码片段可以解决这个问题,但确实有助于提高你文章的质量。请记住,您将在将来回答读者的问题,而这些人可能不知道您的代码建议的原因。希望现在更好。
dict['track'] = [x.replace(u'\u201c', '').replace(u'\u201d', '') for x in dict['track']]
for k,v in dict.items():
dict[k] = [x.replace(u'\u201c', '').replace(u'\u201d', '') for x in v]