insert JSON values into a MySQL table using python











up vote
1
down vote

favorite












I have a JSON file recover from requests.get



here is some of my JSON:



 [{"order":{"id":"B4589B26","status_order_id":5,"status_order_name":"Sent","customer_id":326
"order_products":[{"order_product":{"id":96218,"order_id":96538,"product_id":59320,}}],"customer_email":"user@gmail.com","customer_company":"SARL","customer_name":"user user", .....


here is my code:



token = "xxxx"

r = requests.get('url', auth=('user@gmail.com', token))

mydb = pymysql.connect(host='localhost',
user='root',
passwd='user',
db='ytm_db')

cursor = mydb.cursor()

data = r.json()
json_obj = json.loads(r)

for ord in json_obj["order"]:
print("id:", ord["id"])
print("status_id:", ord["status_order_id"])
print('---')
cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["id"], ord["status_order_id"], ord["customer_id"]))

#close the connection to the database.
mydb.commit()
cursor.close()
print ("Done")


I have this error:



    'not {!r}'.format(s.__class__.__name__))
TypeError: the JSON object must be str, bytes or bytearray, not 'Response'









share|improve this question




























    up vote
    1
    down vote

    favorite












    I have a JSON file recover from requests.get



    here is some of my JSON:



     [{"order":{"id":"B4589B26","status_order_id":5,"status_order_name":"Sent","customer_id":326
    "order_products":[{"order_product":{"id":96218,"order_id":96538,"product_id":59320,}}],"customer_email":"user@gmail.com","customer_company":"SARL","customer_name":"user user", .....


    here is my code:



    token = "xxxx"

    r = requests.get('url', auth=('user@gmail.com', token))

    mydb = pymysql.connect(host='localhost',
    user='root',
    passwd='user',
    db='ytm_db')

    cursor = mydb.cursor()

    data = r.json()
    json_obj = json.loads(r)

    for ord in json_obj["order"]:
    print("id:", ord["id"])
    print("status_id:", ord["status_order_id"])
    print('---')
    cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["id"], ord["status_order_id"], ord["customer_id"]))

    #close the connection to the database.
    mydb.commit()
    cursor.close()
    print ("Done")


    I have this error:



        'not {!r}'.format(s.__class__.__name__))
    TypeError: the JSON object must be str, bytes or bytearray, not 'Response'









    share|improve this question


























      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      I have a JSON file recover from requests.get



      here is some of my JSON:



       [{"order":{"id":"B4589B26","status_order_id":5,"status_order_name":"Sent","customer_id":326
      "order_products":[{"order_product":{"id":96218,"order_id":96538,"product_id":59320,}}],"customer_email":"user@gmail.com","customer_company":"SARL","customer_name":"user user", .....


      here is my code:



      token = "xxxx"

      r = requests.get('url', auth=('user@gmail.com', token))

      mydb = pymysql.connect(host='localhost',
      user='root',
      passwd='user',
      db='ytm_db')

      cursor = mydb.cursor()

      data = r.json()
      json_obj = json.loads(r)

      for ord in json_obj["order"]:
      print("id:", ord["id"])
      print("status_id:", ord["status_order_id"])
      print('---')
      cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["id"], ord["status_order_id"], ord["customer_id"]))

      #close the connection to the database.
      mydb.commit()
      cursor.close()
      print ("Done")


      I have this error:



          'not {!r}'.format(s.__class__.__name__))
      TypeError: the JSON object must be str, bytes or bytearray, not 'Response'









      share|improve this question















      I have a JSON file recover from requests.get



      here is some of my JSON:



       [{"order":{"id":"B4589B26","status_order_id":5,"status_order_name":"Sent","customer_id":326
      "order_products":[{"order_product":{"id":96218,"order_id":96538,"product_id":59320,}}],"customer_email":"user@gmail.com","customer_company":"SARL","customer_name":"user user", .....


      here is my code:



      token = "xxxx"

      r = requests.get('url', auth=('user@gmail.com', token))

      mydb = pymysql.connect(host='localhost',
      user='root',
      passwd='user',
      db='ytm_db')

      cursor = mydb.cursor()

      data = r.json()
      json_obj = json.loads(r)

      for ord in json_obj["order"]:
      print("id:", ord["id"])
      print("status_id:", ord["status_order_id"])
      print('---')
      cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["id"], ord["status_order_id"], ord["customer_id"]))

      #close the connection to the database.
      mydb.commit()
      cursor.close()
      print ("Done")


      I have this error:



          'not {!r}'.format(s.__class__.__name__))
      TypeError: the JSON object must be str, bytes or bytearray, not 'Response'






      python mysql json python-requests






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 11 at 3:30









      Cœur

      17k9102140




      17k9102140










      asked Aug 1 at 11:20









      user_1330

      355




      355
























          2 Answers
          2






          active

          oldest

          votes

















          up vote
          0
          down vote













          You do not need this line json_obj = json.loads(r) . r.json() returns you a json response.



          Ex:



          json_obj = r.json()

          for ord in json_obj["order"]:
          print("id:", ord["id"])
          print("status_id:", ord["status_order_id"])
          print('---')
          cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["id"], ord["status_order_id"], ord["customer_id"]))

          #close the connection to the database.
          mydb.commit()
          cursor.close()





          share|improve this answer





















          • I tried with this code but I have this error : ** for ord in json_obj["order"]: TypeError: list indices must be integers or slices, not str** @Rakesh you have an idea please?
            – user_1330
            Aug 1 at 11:52












          • Looks like json_obj is a list try iterating it first
            – Rakesh
            Aug 1 at 11:54










          • I am a beginner in python I did not understand, can you explain how to do or what to look for, please!
            – user_1330
            Aug 1 at 13:26


















          up vote
          0
          down vote



          accepted










          this is the right solution :



          json_obj = r.json()

          for ord in json_obj:
          print("id:", ord["order"]["id"])
          print("status_id:", ord["order"]["status_order_id"])
          print('---')
          cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["order"]["id"], ord["order"]["status_order_id"], ord["order"]["customer_id"]))

          #close the connection to the database.
          mydb.commit()
          cursor.close()





          share|improve this answer





















            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f51632003%2finsert-json-values-into-a-mysql-table-using-python%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            0
            down vote













            You do not need this line json_obj = json.loads(r) . r.json() returns you a json response.



            Ex:



            json_obj = r.json()

            for ord in json_obj["order"]:
            print("id:", ord["id"])
            print("status_id:", ord["status_order_id"])
            print('---')
            cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["id"], ord["status_order_id"], ord["customer_id"]))

            #close the connection to the database.
            mydb.commit()
            cursor.close()





            share|improve this answer





















            • I tried with this code but I have this error : ** for ord in json_obj["order"]: TypeError: list indices must be integers or slices, not str** @Rakesh you have an idea please?
              – user_1330
              Aug 1 at 11:52












            • Looks like json_obj is a list try iterating it first
              – Rakesh
              Aug 1 at 11:54










            • I am a beginner in python I did not understand, can you explain how to do or what to look for, please!
              – user_1330
              Aug 1 at 13:26















            up vote
            0
            down vote













            You do not need this line json_obj = json.loads(r) . r.json() returns you a json response.



            Ex:



            json_obj = r.json()

            for ord in json_obj["order"]:
            print("id:", ord["id"])
            print("status_id:", ord["status_order_id"])
            print('---')
            cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["id"], ord["status_order_id"], ord["customer_id"]))

            #close the connection to the database.
            mydb.commit()
            cursor.close()





            share|improve this answer





















            • I tried with this code but I have this error : ** for ord in json_obj["order"]: TypeError: list indices must be integers or slices, not str** @Rakesh you have an idea please?
              – user_1330
              Aug 1 at 11:52












            • Looks like json_obj is a list try iterating it first
              – Rakesh
              Aug 1 at 11:54










            • I am a beginner in python I did not understand, can you explain how to do or what to look for, please!
              – user_1330
              Aug 1 at 13:26













            up vote
            0
            down vote










            up vote
            0
            down vote









            You do not need this line json_obj = json.loads(r) . r.json() returns you a json response.



            Ex:



            json_obj = r.json()

            for ord in json_obj["order"]:
            print("id:", ord["id"])
            print("status_id:", ord["status_order_id"])
            print('---')
            cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["id"], ord["status_order_id"], ord["customer_id"]))

            #close the connection to the database.
            mydb.commit()
            cursor.close()





            share|improve this answer












            You do not need this line json_obj = json.loads(r) . r.json() returns you a json response.



            Ex:



            json_obj = r.json()

            for ord in json_obj["order"]:
            print("id:", ord["id"])
            print("status_id:", ord["status_order_id"])
            print('---')
            cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["id"], ord["status_order_id"], ord["customer_id"]))

            #close the connection to the database.
            mydb.commit()
            cursor.close()






            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Aug 1 at 11:30









            Rakesh

            35.8k113769




            35.8k113769












            • I tried with this code but I have this error : ** for ord in json_obj["order"]: TypeError: list indices must be integers or slices, not str** @Rakesh you have an idea please?
              – user_1330
              Aug 1 at 11:52












            • Looks like json_obj is a list try iterating it first
              – Rakesh
              Aug 1 at 11:54










            • I am a beginner in python I did not understand, can you explain how to do or what to look for, please!
              – user_1330
              Aug 1 at 13:26


















            • I tried with this code but I have this error : ** for ord in json_obj["order"]: TypeError: list indices must be integers or slices, not str** @Rakesh you have an idea please?
              – user_1330
              Aug 1 at 11:52












            • Looks like json_obj is a list try iterating it first
              – Rakesh
              Aug 1 at 11:54










            • I am a beginner in python I did not understand, can you explain how to do or what to look for, please!
              – user_1330
              Aug 1 at 13:26
















            I tried with this code but I have this error : ** for ord in json_obj["order"]: TypeError: list indices must be integers or slices, not str** @Rakesh you have an idea please?
            – user_1330
            Aug 1 at 11:52






            I tried with this code but I have this error : ** for ord in json_obj["order"]: TypeError: list indices must be integers or slices, not str** @Rakesh you have an idea please?
            – user_1330
            Aug 1 at 11:52














            Looks like json_obj is a list try iterating it first
            – Rakesh
            Aug 1 at 11:54




            Looks like json_obj is a list try iterating it first
            – Rakesh
            Aug 1 at 11:54












            I am a beginner in python I did not understand, can you explain how to do or what to look for, please!
            – user_1330
            Aug 1 at 13:26




            I am a beginner in python I did not understand, can you explain how to do or what to look for, please!
            – user_1330
            Aug 1 at 13:26












            up vote
            0
            down vote



            accepted










            this is the right solution :



            json_obj = r.json()

            for ord in json_obj:
            print("id:", ord["order"]["id"])
            print("status_id:", ord["order"]["status_order_id"])
            print('---')
            cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["order"]["id"], ord["order"]["status_order_id"], ord["order"]["customer_id"]))

            #close the connection to the database.
            mydb.commit()
            cursor.close()





            share|improve this answer

























              up vote
              0
              down vote



              accepted










              this is the right solution :



              json_obj = r.json()

              for ord in json_obj:
              print("id:", ord["order"]["id"])
              print("status_id:", ord["order"]["status_order_id"])
              print('---')
              cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["order"]["id"], ord["order"]["status_order_id"], ord["order"]["customer_id"]))

              #close the connection to the database.
              mydb.commit()
              cursor.close()





              share|improve this answer























                up vote
                0
                down vote



                accepted







                up vote
                0
                down vote



                accepted






                this is the right solution :



                json_obj = r.json()

                for ord in json_obj:
                print("id:", ord["order"]["id"])
                print("status_id:", ord["order"]["status_order_id"])
                print('---')
                cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["order"]["id"], ord["order"]["status_order_id"], ord["order"]["customer_id"]))

                #close the connection to the database.
                mydb.commit()
                cursor.close()





                share|improve this answer












                this is the right solution :



                json_obj = r.json()

                for ord in json_obj:
                print("id:", ord["order"]["id"])
                print("status_id:", ord["order"]["status_order_id"])
                print('---')
                cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["order"]["id"], ord["order"]["status_order_id"], ord["order"]["customer_id"]))

                #close the connection to the database.
                mydb.commit()
                cursor.close()






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Aug 7 at 12:38









                user_1330

                355




                355






























                     

                    draft saved


                    draft discarded



















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f51632003%2finsert-json-values-into-a-mysql-table-using-python%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Xamarin.iOS Cant Deploy on Iphone

                    Glorious Revolution

                    Dulmage-Mendelsohn matrix decomposition in Python