1

我有来自我转换 inti python 字典的 url 的 json 数据,通过使用 for 循环,我从 url 提供的 json 数据中提取信息。但是如果需要添加更多打印语句,我必须每次都编辑源代码。是有什么方法可以让我使用从设置文件中获取的 for 循环中的 url 获取 json 数据的变量。它可以是任何类型。

我需要这样做,因为如果需要添加一些更改,我会在设置文件中而不是在源代码中进行更改


从 ConfigParser 导入 SafeConfigParser

导入 urllib2

导入简单的json

responseFromMetataste = urllib2.urlopen("http://metataste.com/do?action=srch&want=gnr_4dd3faa9237e1e43c5a416f9&nmht=2&ofst=0&card=appMovieCard").read()

parseResponseString = simplejson.loads(responseFromMetataste)

解析器 = SafeConfigParser()

parser.read("settings.txt")

k=parseResponseString['结果']

for y in range(len(k)):
print "Movie "+str(y+1) print ("Movie_Title :"+(k[y][parser.get('Details','Trailer')][0 ][parser.get('Movie_Details','M_Title')]))

if (parser.get('Movie_Flags','M_url'))=='True' :
    print ("Movie_URL       :"+(k[y][parser.get('Details','Trailer')][0][parser.get('Movie_Details','M_url')]))

if (parser.get('Movie_Flags','M_Id'))=='True' :
    print ("Movie_ID        :"+(k[y][parser.get('Details','Trailer')][0][parser.get('Movie_Details','M_Id')]))

if (parser.get('Movie_Flags','M_Lang'))=='True' :
    print ('Movie_Lang      :'+(k[y][parser.get('Details','Ttl')][parser.get('Details','Languages')][0]))

if (parser.get('Movie_Flags','M_summary'))=='True' :
    print ('Movie_Summary   :'+(k[y][parser.get('Details','Synopsis')]))

if (parser.get('Movie_Flags','M_Genre'))=='True' :
    print ('Movie_Genre     :'+(k[y][parser.get('Details','Genre')][0][parser.get('Movie_Details','M_Genre')]))

if (parser.get('Movie_Flags','Yr_Release'))=='True':
    print ('Year_of_release :'+str(k[y][parser.get('Details','Yor')]))

if (parser.get('Movie_Flags','Poster_Url'))=='True' :
    print ('poster_url      :'+str(k[y][parser.get('Details','Posters')][2][parser.get('Movie_Details','Poster_Url')]))

XXXX……………………XXXX…… ..................................XXXX

设置.txt 文件

[详情] ttl=ttl

拖车=拖车

语言=lngs

概要=synp

类型=gnr

年=年

海报=海报

[电影_标志]

M_Title=真

M_url=真

M_Id=真

M_Lang=真

M_summary=真

M_Genre=真

Yr_Release=真

Poster_Url=真

[电影_详情]

M_Title=ttl

M_url=url

M_Id=_id

M_Lang=lngs

M_summary=真

M_流派=nm

Yr_Release=yr

海报_Url=网址

新的设置文件

var1=true:title:'sometitle'

var2=true:title:'sometitle'

var3=true:title:'sometitle'

这些值应该在 for 循环期间从设置文件中读取,在 for 循环期间我需要通过将 var1 、var2 、 var3 .......传递给某个函数来获取这些值,并且我需要使用 python 执行所有这些步骤。

4

1 回答 1

0

您可以使用提到的任何文件类型。就效率而言,这仅取决于您要编写多少代码。我假设您还将维护代码!

我的建议是使用 csv 文件。读取一行并将其拆分为“,”逗号字符。split 方法应该为您提供一个包含 var1、var2 等的数组。

这样,您可以循环该数组并将其传递给任何其他方法。

于 2012-10-03T09:35:40.397 回答