Tumblr Python存储来自JSON的post photos url

2024-09-29 21:42:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图弄清楚,只要能够存储多个url链接,如何将多个url链接存储到python数组键或任何其他方法中。

在im使用的数据中,每个post可能包含或不包含多个“photos”图像对象(JSON格式),所以我想存储每个post image对象。在

例如,来自https://www.tumblr.com/docs/en/api/v2

"posts": [
         {
            "blog_name": "derekg",
            "id": 7431599279,
            "post_url": "http:\/\/derekg.org\/post\/7431599279",
            "type": "photo",
            "date": "2011-07-09 22:09:47 GMT",
            "timestamp": 1310249387,
            "format": "html",
            "reblog_key": "749amggU",
            "tags": [],
            "note_count": 18,
            "caption": "<p>my arm is getting tired.<\/p>",
            "photos": [
               {
                  "caption": "",
                  "alt_sizes": [
                     {
                        "width": 1280,
                        "height": 722,
                        "url": "http:\/\/derekg.org\/photo\/1280\/7431599279\/1\/
                           tumblr_lo36wbWqqq1qanqww"
                     },
                     {
                        "width": 500,
                        "height": 282,
                        "url": "http:\/\/30.media.tumblr.com\/
                           tumblr_lo36wbWqqq1qanqwwo1_500.jpg"
                     },
                     {
                        "width": 400,
                        "height": 225,
                        "url": "http:\/\/29.media.tumblr.com\/
                           tumblr_lo36wbWqqq1qanqwwo1_400.jpg"
                     },
                     {
                        "width": 250,
                        "height": 141,
                        "url": "http:\/\/26.media.tumblr.com\/
                           tumblr_lo36wbWqqq1qanqwwo1_250.jpg"
                     },
                     {
                        "width": 100,
                        "height": 56,
                        "url": "http:\/\/24.media.tumblr.com\/
                           tumblr_lo36wbWqqq1qanqwwo1_100.jpg"
                     },
                     {
                        "width": 75,
                        "height": 75,
                        "url": "http:\/\/30.media.tumblr.com\/
                           tumblr_lo36wbWqqq1qanqwwo1_75sq.jpg"
                     }
                  ]
               }
            ]
         }
      ]

我的Python到目前为止:

^{pr2}$

我收到了一个错误,因为它仍然没有存储到我的JSON文件中,而且现在所有帖子中的“url”键都丢失了


Tags: 对象comjsonhttpurl链接tumblrwidth
1条回答
网友
1楼 · 发布于 2024-09-29 21:42:10

我没有看到minimal working example(我需要看到JSON解析),但在我看来,您似乎在尝试在一个语句中创建多层字典键。由于依赖于__setitem__,Python一次只允许初始化一个键/索引。因此,您需要初始化...['url'],然后才能分配给...['url'][g]。在

dat[number]['url'][g] = ...也可以被认为是((dat[number])['url'])[g] = ...。现在您应该能够看到在赋值发生之前正在尝试执行的两个索引读取。在

部分示例(psuedo代码!)使用dictionary comprehension

for posts in JSON_DATA:
    #print(posts['blog_name'])
    #print(posts['timestamp'])

    dat[number]['blog_name'] = posts['blog_name']
    dat[number]['tags'] = posts['tags']
    dat[number]['timestamp'] = posts['timestamp']
    g = 0
    if len(posts['photos']) > 1:
        dat[number]['url'] = {k:v['alt_sizes'][0]['url'] for (k, v) in enumerate(posts['photos'])}

另一个示例(更多psuedo代码)使用基本相同的for循环:

^{pr2}$

相关问题 更多 >

    热门问题