JSONDecodeError в Python Pub / Sub Script - PullRequest
       7

JSONDecodeError в Python Pub / Sub Script

0 голосов
/ 31 октября 2019

Вот мой полный код. Этот сценарий запускается pub / sub в облачных функциях и анализирует сообщение из pub / sub по ключу и значению. для тестирования у меня есть образец строки в качестве сообщения в коде.

import base64
import os
import json
#import subprocess
#import shlex

    def hello_pubsub(event, context):
        """Triggered from a message on a Cloud Pub/Sub topic.
        Args:
             event (dict): Event payload.
             context (google.cloud.functions.Context): Metadata for the event.
        """
        pubsub_message ='{"name": instance1, "zone": us-west1-c, "project": projectname}'
        pubsub_json = json.loads(pubsub_message)
        for key,value in pubsub_json.items():
              print (key,value)



    hello_pubsub('event', 'context')

Однако, когда я запускаю это, я получаю эту ошибку

raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 10 (char 9)

Используя отладчик в VSCode, ошибка получает триггер по строке json.loads.

Я пытался использовать разные версии json.loads, и я не уверен, почему я получаю эту ошибку, когда я использую json.dumps, я получаю ошибку sting / integer. Есть идеи?

1 Ответ

1 голос
/ 31 октября 2019

Это действительно недопустимый JSON. Строки должны быть заключены в кавычки:

pubsub_message ='{"name": "instance1", "zone": "us-west1-c", "project": "projectname"}'

Я не могу понять, что это пытается проверить, хотя.

...