回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>嗨,我正在运行我的python文件从api获取数据,并将其从json放入mysql数据库,我使用了之前的代码,在数据从何处传输时,我更改了id名称以确保它们是正确的</p>
<blockquote>
<p>the error is Traceback (most recent call last): File "bne.py", line
35, in
for element in response_data['flightData']: TypeError: list indices must be integers or slices, not str</p>
</blockquote>
<p>这是我的密码</p>
<pre><code>import urllib.parse
import requests
import mysql.connector
import pandas as pd
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="*****",
database="flightdata"
)
mycursor = mydb.cursor()
url = 'https://www.bne.com.au/sites/default/files/00API-Today.json?nocache=true'
#address = 'true'
#url = main_api + urllib.parse.urlencode({address: address})
response_data = requests.get(url).json()
# empty list for holding all the data
data = []
for element in response_data['flightData']:
origin = ['Brisbane']
flight_id = element['id']
airline = element['AirlineName']
destination = element['ToFrom']
flightNumbers = element['FlightNumber']
scheduledTime = element['ScheduledTimeTime']
estimatedTime = element['EstimatedTimeTime']
scheduledDate = element['ScheduledTimeEuro']
latestTime = element['EstimatedTimeTime']
status = element['status']
print (origin, flight_id, flightNumbers, airline, destination, scheduledTime, scheduledDate, latestTime, status)
sql = "INSERT INTO flightinfo (origin, id, airline, destinations, flightNumbers, scheduledTime, estimatedTime, scheduledDate, latestTime, status) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
val = ('sydney', flight_id, airline, " ".join(destination), ", ".join(flightNumbers), scheduledTime, estimatedTime,
scheduledDate, latestTime, status)
data.append(val)
# doing a batch insert
mycursor.executemany(sql, data)
#mydb.commit()
print(mycursor.rowcount, "was inserted.")
#print(val)
#print(pd.datetime.now().date())
</code></pre>