在学习flask时,往mysql批量插入数据时出现这样的错误: TypeError: %d format: a number is required, not NoneType

def load_data():
with open('cities.json', 'rb') as cities_json_file:
cities_json_str = cities_json_file.read()
cities_json = json.loads(cities_json_str)
# print(cities_json)
return cities_json

def insertCity(cities_json):
cities = cities_json.get('returnValue')
keys = cities.keys()

db = pymysql.Connect(host='localhost', port=3306, user='root', password='root', database='FlaskTpp', charset='utf8')
cursor = db.cursor()
if not cursor:
    print('数据仓库连失败')

# print(cities)
for key in keys:

    cursor.execute("INSERT INTO letter(letter) VALUE ('%s');" % key)
    db.commit()
    cursor.execute("SELECT letter.id FROM letter WHERE letter='%s'" % key)
    letter_id = cursor.fetchone()[0]

    cities_leter = cities.get(key)
    for city in cities_leter:

        c_id = city.get('id')

        c_parent_id = city.get('parentId')
        c_regionName = city.get('regionName')
        c_cityCpde = city.get('cityCpde')
        c_pinYin = city.get('pinYin')
        cursor.execute("INSERT INTO city_model (letter_id, c_id, c_parent_id, c_region_name, c_city_code, c_pinyin) VALUE (%d,%d,%d,'%s',%d,'%s');"%(letter_id,c_id,c_parent_id,c_regionName,c_cityCpde,c_pinYin))

        db.commit()

图片说明


sql="INSERT INTO city_model (letter_id, c_id, c_parent_id, c_region_name, c_city_code, c_pinyin) VALUE (%d,%d,%d,'%s',%d,'%s');"%(letter_id,c_id,c_parent_id,c_regionName,c_cityCpde,c_pinYin)

print(sql)

将sql打印出来就一目了然

https://blog.csdn.net/u010700335/article/details/75090457?utm_source=blogxgwz2