Импортировать данные в mysql из файла JSON с помощью кода Python

Как импортировать данные в MySQL из данного файла JSON в Python? Я получаю сообщение об ошибке

Traceback (most recent call last): File "C:/Users/risha/PycharmProjects/Test/JSON_TEST.py", line 24, in con = pymysql.connect(host = '127.0.0.1',user = 'root',passwd = '',db = 'test',port ='3306') File "C:\Users\risha\AppData\Local\Programs\Python\Python36\lib\site-packages\pymysql__init__.py", line 90, in Connect return Connection(*args, **kwargs) File "C:\Users\risha\AppData\Local\Programs\Python\Python36\lib\site-packages\pymysql\connections.py", line 704, in init self.connect() File "C:\Users\risha\AppData\Local\Programs\Python\Python36\lib\site-packages\pymysql\connections.py", line 964, in connect self.host_info = "socket %s:%d" % (self.host, self.port) TypeError: %d format: a number is required, not str

import pymysql

import os
import json

# read JSON file which is in the next parent folder
file = 'C://Users//risha//PycharmProjects//Test//video.json'
json_data= open(file).read()
json_obj = json.loads(json_data)


# do validation and checks before insert
def validate_string(val):
   if val != None:
        if type(val) is int:
            #for x in val:
            #   print(x)
            return str(val).encode('utf-8')
        else:
            return val


# connect to MySQL
con = pymysql.connect(host = '127.0.0.1',user = 'root',passwd = '',db = 'test',port ='3306')
cursor = con.cursor()


# parse json data to SQL insert
for i, item in enumerate(json_obj):
    person = validate_string(item.get("person", None))
    year = validate_string(item.get("year", None))
    company = validate_string(item.get("company", None))

    cursor.execute("INSERT INTO testp (person,  year,   company) VALUES (%s,    %s, %s)", (person,  year,   company))
con.commit()
con.close()

ты что-нибудь пробовал?

Bibek Bhandari 17.06.2018 05:44

Да, но возникает ошибка с подключением SQL

fool 17.06.2018 05:47

не могли бы вы предоставить свой код, чтобы мы могли увидеть, что пошло не так?

Bibek Bhandari 17.06.2018 05:47

Пожалуйста, посмотрите мой код ideone.com/tFXoYi

fool 17.06.2018 05:49

в чем ошибка?

Bibek Bhandari 17.06.2018 05:51

Отредактировано, проверьте сейчас в разделе вопросов

fool 17.06.2018 05:54

попробуйте port = 3306 без кавычек

Bibek Bhandari 17.06.2018 05:59

Теперь он говорит pymysql.err.InternalError: (1049, «Неизвестная база данных 'test'»)

fool 17.06.2018 06:03

вы создали базу данных под названием «тест»?

Bibek Bhandari 17.06.2018 06:05

Нет, я не создавал ни одной базы данных

fool 17.06.2018 06:20

тогда он обязательно покажет эту ошибку. вам нужно вручную создать эту тестовую базу данных, а затем запустить свою программу

Bibek Bhandari 17.06.2018 06:21
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
11
2 136
0

Другие вопросы по теме