【问题标题】:receive and loop through json data in python在python中接收和循环json数据
【发布时间】:2016-04-15 12:44:35
【问题描述】:

我有一个JSON 使用AJAX 发送到我的服务器的数据。数据来了,我看到了。

def add_collection(self):
        form = AccountForm.LoginForm(request.form)
        if self.request.method == 'GET' :
            return render_template('add_collection.html',user=current_user,formLogin = form)
        elif self.request.method == 'POST' :
            for data in self.request.data :
                print "The data is %s" %data

当我打印 self.request.data 时,我得到了我的JSON

    [{"image":"https://mybucket.s3.amazonaws.com/asma.jpg","Description":"Photo Descriptiong"},
{"image":"https://mybucket.s3.amazonaws.com/NCg3G.png","Description":"Photo Description"}]'

以上正是我的JSONfile 的样子和我所期待的。但是,我想将它分成两行并插入数据库。请问我如何循环通过JSON。我见过类似的问题here 等等。但是,没有一个对我有用。当我尝试

 for data in self.request.data :
                print data['image']

TypeError:字符串索引必须是整数,而不是 str

请问我该如何实现?任何帮助将不胜感激。

下面是我的ajax请求。

$.ajax({
                url: "/user/add_collection",
                type: 'POST',
                contentType:'application/json',
                data: JSON.stringify(arr),
                dataType:'json',
                success : function(data,status){
                    console.log("The image upload data returns", data);
                    console.log("the image upload status is", status);
                },
                error : function(xhr, ajaxOptions, thrownError){
                    //$.mobile.loading('hide');
                    if (xhr.status == 200) {
                        alert(ajaxOptions);
                    }
                    else {
                        alert(xhr.status);
                        alert(thrownError);
                    }
                }
            });

我正在使用python运行flask框架。

【问题讨论】:

  • 这个“服务器”是什么?你用的是什么框架?
  • @DanielRoseman 我正在运行烧瓶框架

标签: python json flask


【解决方案1】:

我认为您将响应作为字符串 (self.request.data)。 要将其视为对象,您需要先将其转换(从字符串到 python 表示):

    elif self.request.method == 'POST' :
        parsed_json = json.loads(self.request.data)
        for data in parsed_json:
            print data['image']

【讨论】:

    【解决方案2】:

    JSON 数据以字符串形式接收。你需要先解析它。

    data = json.loads(self.request.data)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-22
      • 2020-04-14
      • 1970-01-01
      • 2021-11-29
      • 2016-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多