2015-08-24 58 views
-4

我只需要最後一個數字25,所以我可以將其更改爲int()。我有這個文本文件:從冒號後的文本文件或python冒號之前獲取值

{ 
    "members": [ 
    {"name": "John", "location": "QC", "age": 25}, 
    {"name": "Jesse", "location": "PQ", "age": 24}, 
} 

然後返回

這是我迄今爲止嘗試過,所以我如此堅持...什麼樣的功能,我用它來解析它的時代價值?這就是你所說的嗎?我是編程和python的新手。

import json 
import pprint 

my_data = json.loads(open("team.json.txt").read()) 

print 'members whose location is in PQ' 
member_in_pq = [member for member in my_data['members'] \ 
    if member['location'] == 'PQ'] 
pprint.pprint(member_in_pq) 

順便說一句我試過這個代碼,但它給出了一個錯誤:

result = my_data.split(':')[-1] 
+2

你想'member_in_pq = [M如果member ['location'] =='PQ']''my_data ['members'] \ 中的成員[「age」] – muddyfish

+0

我想使用my_data它是否可行? – lrsantos17

+1

[過濾一行中的某個字符串的文本文件,然後返回該行中的另一個字符串]可能的重複(http://stackoverflow.com/questions/32174716/filtering-a-text-file-with-a-certain - 串 - 然後返回另一個str) –

回答

1

我不知道你問怎麼辦,反而會使試圖猜測。

首先,你顯示文本不是有效的JSON和需要改變的東西是這樣的:

{             
    "members": [          
    {"name": "John", "location": "QC", "age": 25}, 
    {"name": "Jesse", "location": "PQ", "age": 24} 
    ] 
}             

這裏的東西,將打印出所有的數據,每個成員的位置PQ

import json 
import pprint 

my_data = json.loads(open("team.json.txt").read()) 

members_in_pq = [member for member in my_data['members'] 
        if member['location'] == 'PQ'] 

print 'members whose location is in PQ' 
for member in members_in_pq: 
    print ' name: {name}, location: {location}, age: {age}'.format(**member) 

輸出:

members whose location is in PQ 
    name: Jesse, location: PQ, age: 24 
+0

也很大的幫助瞭解python,但我只需要25或24或者任何一個,所以我可以將其更改爲int,因爲我需要根據年齡範圍過濾這個有兩個以上名稱的整個文本 – lrsantos17

+0

有兩個以上名字,但我apasted只有兩個只是把兩個 – lrsantos17

+0

sir @martineau什麼是.format(**成員)的? – lrsantos17