# -*- coding: utf-8 -*- import string import json import urllib2 import urllib import base64 import sys reload(sys) sys.setdefaultencoding( "utf-8" ) #调用优酷网API获取json数据 def GetYouku(): req=urllib2.Request(url,code) data=urllib2.urlopen(req).read() obj=json.loads(data) #把json格式字符串解码转换成Python对象 newobj=json.dumps(obj,indent=4,ensure_ascii=False) #把Python对象编码转换成json字符串,缩进,显示中文 return newobj #将json数据写入文件 def JsonFile(newobj): file=open("d:\video.json","w") file.write(newobj) file.close() #开始 if __name__ == '__main__': url="https://openapi.youku.com/v2/searches/video/by_keyword.json" params={ 'client_id':'XXXXXXXXX', 'keyword':'冰桶挑战', 'category':'娱乐' } code=urllib.urlencode(params) newobj=GetYouku() JsonFile(newobj)
这种错误的出现是在使用built-in函数file()或者open()的时候。或者是因为文件的打开模式不对,或者是文件名有问题。
前者的话只需要注意文件是否可读或者可写就可以了。后者则是与文件路径相关的问题,需要在文件名前加r或者R转义,
如:file(r"d:\video.json",‘w‘).或者将反斜杠\变成两个,如file("d:\\video.json",‘w‘).
[Python]Invalid mode ('w') or filename: 'd:\x0bideo'
原文地址:http://blog.csdn.net/sunnyyoona/article/details/41744803