如何在Python脚本中调用外部命令(就像我在Unix shell或Windows命令提示符下键入它一样)?
我有一个在PHP中使用的cURL调用:
curl -i -H'接受:application/xml'-u login:key" https://app.streamsend.com/emails "
我需要一种在Python中做同样事情的方法.在Python中是否有替代cURL的方法.我知道urllib,但我是一个Python noob,不知道如何使用它.
我试图使用Python获取URL,响应是JSON.但是,当我跑
import urllib2
response = urllib2.urlopen('https://api.instagram.com/v1/tags/pizza/media/XXXXXX')
html=response.read()
print html
Run Code Online (Sandbox Code Playgroud)
html是str类型,我期待一个JSON.有没有什么办法可以将响应捕获为JSON或python字典而不是str.
背景:我想看看如何使用我的 Google Photos 空间,我用 Python 编写了一个小脚本,它使用 Google Photos API 来检索我的所有相册及其内容(使用https://developers.google.com/photos /library/reference/rest/v1/mediaItems/search)。文件信息不存在,但使用mediaItem baseUrl(记录的https://developers.google.com/photos/library/reference/rest/v1/mediaItems#MediaItem)然后我可以执行HEAD请求并content-length从标头中获取文件信息。这对于照片来说似乎效果很好,但视频的大小被严重低估了。我的猜测是,Google Photos 正在准备流式传输视频,并且不会发送整个视频信息。
问题:有没有办法检索存储在 Google Photos 上的视频的文件大小,希望不必下载整个视频?该应用程序确实知道文件大小,但这似乎在 API 中不可用。有没有办法发送一些请求标头来获取文件大小?
额外信息:我正在使用 Python 和httplib2.Http()来处理我的HEAD请求(很高兴使用 requests 模块或任何其他替代方案)。
这是从 API 检索到的信息,该视频文件略高于 100MB(绝对不是 30k):
{
"id": "XYZ",
"productUrl": "https://photos.google.com/lr/photo/XYZ",
"baseUrl": "https://lh3.googleusercontent.com/lr/ABC",
"mimeType": "video/mp4",
"mediaMetadata": {
"creationTime": "2018-11-27T03:43:27Z",
"width": "1920",
"height": "1080",
"video": {
"fps": 120,
"status": "READY"
}
},
"filename": "VID_20181126_174327.mp4"
}
Run Code Online (Sandbox Code Playgroud)
HEAD这些是从请求接收到的标头baseUrl:
{ …Run Code Online (Sandbox Code Playgroud) python video-streaming http-headers google-photos google-photos-api
尝试运行curl命令来获取响应并将其保存到文件中
无法创建代码,因为这是第一次尝试在 python 中使用curl 命令,不知道从哪里开始
curl -X POST --header "Content-Type: application/json" --header "Accept: application/json" -d "
{ \"Products\": [], \"DataProducts\": [], \"includeExtractFields\": true, \"includedDocumentTypes\": [], \"removeOrphans\": true, \"searchDataProduct\": \"Model|test\", \"searchField\": \"ID_TEST\", \"searchValues\": [ \"123456789\",\"987654321\" ] }
" "http://test"
Run Code Online (Sandbox Code Playgroud)
curl 命令应返回 json,然后将其保存到文件中
python ×5
curl ×2
command ×1
http-headers ×1
json ×1
shell ×1
subprocess ×1
terminal ×1
urllib2 ×1