mise à jour; donc le genre et les réponses utiles de deux grands utilisateurs ici, je ne les suivantesComment me connecter à une base de données MySQL en Python de la bonne manière?
bonjour cher Bryn merci beaucoup j'effaça la db CPAN et runned à nouveau le programme, voir les résultats:
[email protected]:~/perl> python cpan_100.py
Traceback (most recent call last):
File "cpan_100.py", line 45, in <module>
user = User.create(name=entry["name"], cname=entry["cname"],
TypeError: string indices must be integers, not str
bien c'est un peu difficile - pourquoi puis-je obtenir ces résultats !! `
ici l'original affichant
assez nouveau pour python et à la programmation aussi?. J'essaie de me connecter à une base de données MySQL sur RDS d'Amazon en utilisant peewee et je n'arrive pas à le faire fonctionner. Je suis nouveau dans les bases de données donc je fais probablement quelque chose de stupide, mais c'est ce que j'essaie: bien j'ai essayé d'obtenir une connexion à une base de données en python avec peewee mais à un certain moment le programme échoue.
import urllib
import urlparse
import re
# import peewee
import json
from peewee import *
#from peewee import MySQLDatabase ('cpan', user='root',passwd='rimbaud')
db = MySQLDatabase('cpan', user='root',passwd='rimbaud')
class User(Model):
name = TextField()
cname = TextField()
email = TextField()
url = TextField()
class Meta:
database = db # this model uses the cpan database
User.create_table() #ensure table is created
url = "http://search.cpan.org/author/?W"
html = urllib.urlopen(url).read()
for lk, capname, name in re.findall('<a href="(/~.*?/)"><b>(.*?)</b></a><br/><small>(.*?)</small>', html):
alk = urlparse.urljoin(url, lk)
data = { 'url':alk, 'name':name, 'cname':capname }
phtml = urllib.urlopen(alk).read()
memail = re.search('<a href="mailto:(.*?)">', phtml)
if memail:
data['email'] = memail.group(1)
# data = json.load('email') #your json data file here
for entry in data: #assuming your data is an array of JSON objects
user = User.create(name=entry["name"], cname=entry["cname"],
email=entry["email"], url=entry["url"])
user.save()
i rapportiez les résultats suivants
[email protected]:~/perl> python cpan_100.py
Traceback (most recent call last):
File "cpan_100.py", line 27, in <module>
User.create_table() #ensure table is created
File "build/bdist.linux-i686/egg/peewee.py", line 3078, in create_table
File "build/bdist.linux-i686/egg/peewee.py", line 2471, in create_table
File "build/bdist.linux-i686/egg/peewee.py", line 2414, in execute_sql
File "build/bdist.linux-i686/egg/peewee.py", line 2283, in __exit__
File "build/bdist.linux-i686/egg/peewee.py", line 2406, in execute_sql
File "/usr/lib/python2.7/site-packages/MySQLdb/cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
peewee.OperationalError: (1050, "Table 'user' already exists")
[email protected]:~/perl>
si vous pouvez me aider je serais très heureux e! Merci pour toute aide
salutations
bien, d'abord je devrais dire que je ne sais rien à propos de «peewee». Mais ce message 'peewee.OperationalError: (1050," Utilisateur 'Table' existe déjà ")' semble être le coeur de votre problème: vous créez inconditionnellement la table avec 'User.create_table()' alors que vous devriez vérifier si il existe et essaie de le créer seulement s'il ne le fait pas. – isedev
bonjour cher isedev. tout d'abord merci beaucoup pour les conseils. Je ferai les vérifications et jetterai un coup d'oeil plus étroit à la table déjà excisting dans le DB. devinez que je dois effacer quelque chose par exemple des tables à la DB - afin de le faire fonctionner ... – user3730786
bonjour j'ai posté une mise à jour - voir le haut de l'affichage original. J'aimerais avoir de vos nouvelles. Je pense que nous sommes très très proches – user3730786