Python 获取特定于文本文件的字段问题
我正在研究python,以便使用社交媒体上的数据挖掘来分析数据。 现在,我已经编写了一个代码,为我提供了Facebook最受欢迎页面的信息,并将信息存储在名为Python 获取特定于文本文件的字段问题,python,python-2.7,Python,Python 2.7,我正在研究python,以便使用社交媒体上的数据挖掘来分析数据。 现在,我已经编写了一个代码,为我提供了Facebook最受欢迎页面的信息,并将信息存储在名为“pages.txt”的文本文件中。以下是我文本文件内容的快照: { "paging": { "next": "https://graph.facebook.com/search?limit=1&type=page&q=%26&locale=ar_AR&access_token=CAACEdEose0c
“pages.txt”
的文本文件中。以下是我文本文件内容的快照:
{
"paging": {
"next": "https://graph.facebook.com/search?limit=1&type=page&q=%26&locale=ar_AR&access_token=CAACEdEose0cBAFxVPV6lJ43O6MABoxVrrHlb01rBNmpVf8ZCK0M1QlsEJ6yRZBWlzjf0vA1eX6YdwNHF2TLZBsECdg6Q8mI3BH3n5QTMsi55KtkCtOCd36AVxjZA7PXBL3mZA6FsLZCNp9IZCItCI4YVhCeikubnwCLpE0nSTOcKXR8DUzcZA4qZCBW92yoCDFk2z0eZBNSUU6lgZDZD&offset=1&__after_id=6127898346"
},
"data": [
{
"category": "\u0627\u0644\u062a\u0639\u0644\u064a\u0645",
"name": "The London School of Economics and Political Science - LSE",
"category_list": [
{
"id": "108051929285833",
"name": "\u0627\u0644\u0643\u0644\u064a\u0629 \u0648\u0627\u0644\u062c\u0627\u0645\u0639\u0629"
},
{
"id": "187751327923426",
"name": "\u0645\u0646\u0638\u0645\u0629 \u062a\u0639\u0644\u064a\u0645\u064a\u0629"
}
],
"id": "6127898346"
}
]
}
现在我想知道如何从中获取特定字段(例如“id”:“6127898346”)?我试了很多,但找不到办法。
到目前为止,我已经写了以下内容:
ins = open( "pages.txt", "r" )
values = []
for line in ins:
values.append(line)
ins.close()
print values
但是这给了我整行的帮助吗?这是JSON。您可以通过使用
json
模块加载数据来获取数据:
import json
with open(your_file).read() as content:
data = json.loads(content)
# manipulate your data
数据
将是普通的Python数据结构,如嵌套列表、dict、strings和int,因此您可以用通常的方式操作它们。尝试以下方法:
INFILE = open("pages.txt","r")
file = INFILE.readlines()
listA = []
ID_List = []
for line in file:
if (line[6:8] =="id"):
line = line.strip()
listA.append(line)
for id in listA:
item = id[7:-2]
item = item.strip()
if item not in ID_List:
ID_List.append(item)
print "List of all IDS:",ID_List
在文件上运行此命令后,我得到:
>>>
List of all IDS: ['108051929285833', '187751327923426', '612789834']
>>>
你知道这是数据吗?你可以使用多个for循环来获取特定的信息。现在我正在考虑一种简单易懂的算法来实现这一点。给我一秒钟。@Hussantamboli:是的,我知道this@e-saties:但是是否有任何查询以输入分页字段ad,然后输入数据字段以获得id字段。我尝试了你的代码,但它对我没有帮助。当你运行我的代码时,你得到了什么?你想从中得到什么信息?你对它了解多少?你没有做什么?你有错误吗?您需要提供大量信息,我们才能帮助您。但是如何访问category_list字段?您有一个包含指向列表的键“data”的字典。此列表包含字典,每个字典都有一个键“category\u list”。现在,如果您不知道如何访问字典上的键或在列表上迭代,那么您必须先了解这一点,然后再回来:这在Python中非常重要。如果这样做,访问“category\u list”意味着访问一个dict键,然后对结果进行迭代,然后对每个项访问项“category\u list”键。您不需要任何特殊的操作,只需要常规的dict/list操作。困难的是,它们是嵌套的,在这里。首先用哑数据锻炼自己。通过将列表放入字典并访问列表项来训练终端:
data={'a':[1,2,3],'b':[4,5,6]}
。尝试从中获得6
。然后,当您能够这样做时,将字典放入列表中,并尝试访问字典:data={'a':[{{1:True,2:None}]}
。尝试从中获取True
。一旦你做到了这一点,你将能够解决你的问题。这不是一个可靠的方法,也不应该推广。@e-satis我明白,但由于arze ramade似乎是Python的新手,我使用了这个非常简单的方法。很容易理解,但这不是最好的方法。如果他是一个初学者,这是一个很好的理由,不能避免给他一个他无法评估的答案。