我有一个以Json格式呈现的列表,它有不同的语言,我想用它们的标签识别它们,然后再将这些特定语言保存到不同的列表中。
假设我有一个.net和web标签以及以json格式使用的基本语言和工具,即
>>> json_words = """
... [
... {".Net": [
... ["ASP .NET", 3],
... ["Angular JS", 1]
... ]},
... {"Web": [
... ["Database", 3],
... ["jQuery", 3]
... ] }
... ]
... """
注意方括号的关闭。在这个例子中,列表中的第一个字符串(在我的例子中是.net和web)被认为是标记,其余的是它的语言。
现在,我做了类似的事情来检查返回的内容:
>>> import json
>>> important_words = json.loads(json_words)
>>> important_words = [str(s) for s in important_words]
>>> important_words = [item.lower() for item in important_words]
>>> print important_words[0]
[u'[.net]', [u'asp .net', 3], [u'angular js', 1]]
但我不能单独访问标签..
>>> print important_words[0][1]
u
如何只访问标签,然后再访问其进一步列表。我也尝试使它成为一个numpy阵列,但它根本没有帮助。
values = np.array(important_words)
它实际上是列表的方括号,它最让我烦恼...我是否正确地制作了这个json列表?
任何形式的帮助都将受到赞赏......
答案 0 :(得分:0)
如果我理解你要做什么,我会把它转换成字典(orderedDict,如果你想保留订单)。您还可以过滤列表中的数字,以便为您提供语言列表。
>>> frameworks = {framework[0]: [language[0] for language in framework[1:]] for framework in _list}
>>> frameworks.keys()
['[.Net]', '[Web]']
>>> frameworks['[.Net]']
['ASP .NET', 'MVC Framework', 'Angular JS', 'AJAX']
>>> frameworks['[Web]']
['Database', 'jQuery', 'Javascript', 'SQL Server', 'Bootstrap', 'Html', 'CSS']
答案 1 :(得分:0)
您正在将整个list
转换为字符串:
>>> [str(s) for s in important_words]
important_words
是list
个列表,例如第一个s
将是:
>>> important_words[0]
[u'[.Net]', [u'ASP .NET', 3], [u'Angular JS', 1]]
当您致电str(s)
时,您将获得整个列表的字符串表示形式:
>>> str(important_words[0])
u"[u'[.Net]', [u'ASP .NET', 3], [u'Angular JS', 1]]"
答案 2 :(得分:0)
如果您根据以下内容拆分列表:'然后你可以访问你的json_words。
>>> json_words = [str(s) for s in json_words]
>>> json_words = [item.lower() for item in json_words]
>>> tag_list = {}
>>> for i in range(0, len(json_words)):
... tag_list[i] = (json_words)[i].split(':')[0] #This will gives you list of first strings
>>> print tag_list
{0: "{'.net'", 1: "{'web'"}
>>> print tag_list.values()
["{'.net'", "{'web'"]
并且为了访问进一步的列表,基于这样的逗号分割它:
>>> dotnet_list = (json_words)[i].split(':')[1].split(',')
["'asp .net'", "'angular js'"]
这是一个较长的方法,但更简单的方法(我认为)