繁体   English   中英

从.json文件获取特定数据,然后将其保存到python中的2D矩阵/字典中

[英]Get specific data from a .json file and save them to a 2D matrix/dictionary in python

我是python的新手,我一直在尝试对文件夹内的各种.json文件进行一些NLP处理。 我设法使用键(即文章获取描述值)从字典中分别获取和打印每个条目。 关键是每次循环执行时,我都会将新数据值保存到与body1相同的变量中。 由于某些原因,我发现很难执行的操作是将每个数据条目(每个文章说明)保存在二维矩阵或字典表中(如果要保存),以便能够将所有条目保存在那里以备将来使用。 就像是 :

body1 = ['file_name','description','file_name','description','file_name','description']因此,如果需要的话,我可以使用body1 [name] [description]打印第二个文件的描述。 现在,在每次迭代中,最后一次迭代中的数据都会丢失。 我认为我的C配置想法确实让我看到了答案。 我将不胜感激。

预先谢谢你,乔治

   import os
   import glob
   import json
   import nltk
   from nltk.corpus import stopwords
   from nltk import PorterStemmer

   stop = stopwords.words('english')
   stemmer=PorterStemmer()

   for name in glob.glob('/Users/jorjis/Desktop/test/*'):
     jfile = open(name, 'r')
     values = json.load(jfile)
     jfile.close()
     body1 = values['article']['description']
     tokens = nltk.wordpunct_tokenize(body1)
     tokens = [w.lower() for w in tokens]
     vocab = [word for word in tokens if word not in stop]
     print body1

您需要在循环外建立一个列表并附加值。

final = [] # add values you want saved to final
uniq_ident = 1
for name in glob.glob('/Users/jorjis/Desktop/test/*'):
     jfile = open(name, 'r')
     values = json.load(jfile)
     jfile.close()
     body1 = values['article']['description']
     tokens = nltk.wordpunct_tokenize(body1)
     tokens = [w.lower() for w in tokens]
     vocab = [word for word in tokens if word not in stop]
     final.append([uniq_ident,vocab]) # append vocab or whatever values you want to keep
     uniq_ident += 1
     print body1

您还可以使用带有final = {} make final dict并使用final[uniq_ident] = vocab

如果您想保留最终列表并在每次使用时附加字典:

 final.append({uniq_ident:vocab})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM