2014-02-25 5 views
0

저는 파이썬에 매우 익숙합니다. 따라서 숙련 된 파이썬 프로그래머에게는 아마도 매우 어려울 것입니다.어떻게 파이썬에서 괄호와 따옴표없이 문자열 인수를 반환합니까?

아래 문제는 groupid 인수에 값이 제공되면 [ 'groupid']로 평가된다는 것입니다.

누군가가 대괄호와 싱글 따옴표없이 groupid 값을 갖도록 문자열을 연결하는 방법을 설명해 주실 수 있습니까? 매개 변수 이름은 쿼리 문자열에서 반복 될 수 있고 목록을 반환하는 것은 당신이 매개 변수의 여러 값을 볼 수 있기 때문에

많은 감사,

import sys 
import xbmcgui 
import xbmcplugin 
import urllib 
import urlparse 

import xbmc, xbmcaddon, xbmcvfs, simplejson, urllib2 

base_url = sys.argv[0] 
addon_handle = int(sys.argv[1]) 
args = urlparse.parse_qs(sys.argv[2][1:]) 

xbmcplugin.setContent(addon_handle, 'movies') 

def build_url(query): 
    return base_url + '?' + urllib.urlencode(query) 

mode = args.get('mode', None) 
groupid = args.get('groupid', None) 

if (groupid is None): 
    testurl = 'hxxp://webserver.com/json.php' 
else: 
    testurl = 'hxxp://webserver.com/json.php?group=' + str(groupid) 

req = urllib2.urlopen(testurl) 
response = req.read() 
req.close() 

답변

2

urlparse.parse_qs 항상 목록의 사전을 반환합니다. 당신은 아마도 "그룹 ID"의 쿼리 매개 변수에 대해 하나 개의 값을 기대하기 때문에, 당신은 단지 따라서, 목록의 첫 번째 요소를 원하는 : 인쇄 대신

str(groupid) 

STR (그룹 ID)의

groupid[0] 

이었다 리스트의 캐릭터 라인 표현 groupid = args.get('groupid' or None).get('groupid', ...가 사용되는 dict() (.get로 반환하는 것 같다 : 파이썬에서

+0

완벽한 완전히 이해합니다. 고맙습니다. –

0

, [] 코드에서 그래서

list()의 약어 (예 : [4 'groupid_1', 'groupid_2', 3])입니다 dicts)를 반환하지만 list()을 반환합니다.

예.

args = { 
    'groupid': [1, 14, 23] 
    ... 
} 

그래서 : 는 그룹 ID = args.get ('그룹 ID')

그룹 ID = [1, 14, 23]

그래서 str(groupid) 복귀 "[1, 14, 23]"

호출하게

반면에 str(groupid[1])을 호출하면 14

이 반환됩니다.

ANSWER str(groupid)str(groupid[0])으로 변경하십시오.

[#] (예 : [0])을 사용하면 목록의 첫 번째 항목을 반환하고 [1]은 목록의 두 번째 항목을 반환합니다. [#]의 프로그래밍이 터미널에서

을 보내고 index라고, 당신은이를 테스트 할 수 있습니다

>>> groupid = ['asd'] 
>>> groupid 
['asd'] 
>>> str(groupid) 
"['asd']" 
>>> str(groupid[0]) 
'asd' 
>>>