Skip to main content

TypeError while iterating list of dictionaries in docker container

I have a Django project. I use Wordpress as an admin panel. I call WP API during handling one of views.

Here is the view:

def blog(request):
sys.stderr.write('views.blog started to process\n')
if request.method == 'GET':
    list_of_blogposts = []

    # load all posts
    try:
        response = wp.get_all_post()
        all_posts = json.loads(response.text)
        sys.stderr.write('path /blog - all done' + all_posts)
    except Http404:
        msg = 'Unable to load blogposts.'
        sys.stderr.write(msg)
        raise Http404(msg)
    except TimeoutError:
        msg = 'Requst timed out.'
        sys.stderr.write(msg)
        raise TimeoutError(msg)
    except Exception:
        msg = 'Exception'
        sys.stderr.write(msg + str(traceback.extract_stack()))

    # iterate all posts
    try:
        # get all images
        m = wp.get_all_images()
        media = json.loads(m.text)

        for post in all_posts:
            img = post["featured_media"]
            url = u.get_image_url(media, img)

            b = {
                "body": post["content"]["rendered"],
                "title": post["title"]["rendered"],
                "summary": post["excerpt"]["rendered"],
                "image_url": str(url),
                "post_id": post["id"],
                "publishedAt": u.convert_dt_to_str(post["date"])
            }

            # add post to list for response
            list_of_blogposts.append(b)
    except TypeError or ValueError or RuntimeError or KeyError:
        sys.stderr.write('Iteration through posts failed.')
        raise Exception('Unexpected error. Try again later.')

    context = {'posts_list': list_of_blogposts}
    return render(request, 'web/blog.html', context)
else:
    raise Http404("Incorrect HTTP method.")

It works great as I want. When I create Docker image and run it on linux server I got - TypeError: string indices must be integers, not 'str' at line where is img = post["featured_media"].

I am confused because when I debug the issue I see that post is dictionary and it should be possible to go through like I did. enter image description here

I appreciate any help or hint. Thank you in advance.



source https://stackoverflow.com/questions/76240243/typeerror-while-iterating-list-of-dictionaries-in-docker-container

Comments

Popular posts from this blog

Prop `className` did not match in next js app

I have written a sample code ( Github Link here ). this is a simple next js app, but giving me error when I refresh the page. This seems to be the common problem and I tried the fix provided in the internet but does not seem to fix my issue. The error is Warning: Prop className did not match. Server: "MuiBox-root MuiBox-root-1" Client: "MuiBox-root MuiBox-root-2". Did changes for _document.js, modified _app.js as mentioned in official website and solutions in stackoverflow. but nothing seems to work. Could someone take a look and help me whats wrong with the code? Via Active questions tagged javascript - Stack Overflow https://ift.tt/2FdjaAW

How to show number of registered users in Laravel based on usertype?

i'm trying to display data from the database in the admin dashboard i used this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count(); echo $users; ?> and i have successfully get the correct data from the database but what if i want to display a specific data for example in this user table there is "usertype" that specify if the user is normal user or admin i want to user the same code above but to display a specific usertype i tried this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count()->WHERE usertype =admin; echo $users; ?> but it didn't work, what am i doing wrong? source https://stackoverflow.com/questions/68199726/how-to-show-number-of-registered-users-in-laravel-based-on-usertype

Why is my reports service not connecting?

I am trying to pull some data from a Postgres database using Node.js and node-postures but I can't figure out why my service isn't connecting. my routes/index.js file: const express = require('express'); const router = express.Router(); const ordersCountController = require('../controllers/ordersCountController'); const ordersController = require('../controllers/ordersController'); const weeklyReportsController = require('../controllers/weeklyReportsController'); router.get('/orders_count', ordersCountController); router.get('/orders', ordersController); router.get('/weekly_reports', weeklyReportsController); module.exports = router; My controllers/weeklyReportsController.js file: const weeklyReportsService = require('../services/weeklyReportsService'); const weeklyReportsController = async (req, res) => { try { const data = await weeklyReportsService; res.json({data}) console