Python-从空格分隔的字符生成单词

Python-从空格分隔的字符生成单词,python,python-2.7,unicode,python-unicode,Python,Python 2.7,Unicode,Python Unicode,我有一个JSON文件,我将其转换为字符串以删除HTML标记,但函数返回unicode值,如下所示: [u'', u'', u'', u'c', u'i', u's', u' ', u'b', u'y', u' ', u'd', u'e', u'l', u'o', u'i', u't', u't', u'e', u''] def cleaning_data(input_json_data): jd = input_json_data['description'] jd = [

我有一个JSON文件,我将其转换为字符串以删除HTML标记,但函数返回unicode值,如下所示:

[u'', u'', u'', u'c', u'i', u's', u' ', u'b', u'y', u' ', u'd', u'e', u'l', u'o', u'i', u't', u't', u'e', u'']
def cleaning_data(input_json_data):
   jd = input_json_data['description']    
   jd = [x.lower() for x in jd]
   jd = str(jd)
   jd = re.sub('<[^>]*>', '', jd)
   print jd
我想从德勤的上述输出cis中提取单词。让我知道如何解决这个问题。我尝试过的代码如下所示:

[u'', u'', u'', u'c', u'i', u's', u' ', u'b', u'y', u' ', u'd', u'e', u'l', u'o', u'i', u't', u't', u'e', u'']
def cleaning_data(input_json_data):
   jd = input_json_data['description']    
   jd = [x.lower() for x in jd]
   jd = str(jd)
   jd = re.sub('<[^>]*>', '', jd)
   print jd
def清洗数据(输入json数据):
jd=输入json数据['description']
jd=[x.lower()表示jd中的x]
jd=str(jd)
jd=re.sub(']*>,'',jd)
打印jd

如果列表是空字符串,只需将列表中的元素连接到空字符串中即可

a = [u'', u'', u'', u'c', u'i', u's', u' ', u'b', u'y', u' ', u'd', u'e', u'l', u'o', u'i', u't', u't', u'e', u'']
print(''.join(a))
如果它不是一个列表,而是一个字符串,那么您可以先这样求值:

from ast import literal_eval

a = """[u'', u'', u'', u'c', u'i', u's', u' ', u'b', u'y', u' ', u'd', u'e', u'l', u'o', u'i', u't', u't', u'e', u'']"""
a = literal_eval(a)
print(''.join(a))
输出:

u'cis by deloitte'

为什么要将
jd
列表转换为带有
jd=str(jd)
的字符串?因为re模块仅在缓冲区或字符串上工作。我必须把它转换成字符串。请告诉我是否还有其他方法。
input\u json\u data['description']
是字符串还是字符串列表?如果它是单个字符串,您应该使用
jd=input\u json\u data['description'].lower()将其转换为小写。但是您可以使用
''将字符串列表加入字符串。join(jd)
,如下面和中的答案所示。@PM 2Ring input_json_data是一个json文件,我从中获取描述码数据。“input_json_data['description']”的类型是unicode。因此,它被转换为字符串。如果有办法将Json数据转换为DataFrame,一定要让我知道,这对我的任务很有帮助re模块可以很好地处理unicode对象(也称unicode字符串)。无需将其转换为
str
。谢谢!!有帮助@MYGz