Ответ Axios - это строка с возвращением каретки, должна быть массивом. - PullRequest
0 голосов
/ 10 февраля 2019

Я работаю над небольшим проектом с использованием Python и Vue.js.В рамках этого проекта я делаю запрос axios, который должен быть массивом массивов, но возвращает строку.Строка выглядит так из моего ответа:

Но сначала я увидел этот ответ: Axios Данные запроса на получение возвращаются с «data: ↵ ↵ ↵ ↵» и похоже, что это мойвопрос.Однако, как я скажу позже в этом вопросе, я только что закончил делать подобный проект, и Axios работал отлично!Код был практически идентичен.Я вставил этот код в этот проект, и он работал!

"[↵  [↵    "United States", ↵    86.19↵  ], ↵  [↵  …, ↵    0↵  ], ↵  [↵    "US-France", ↵    0↵  ]↵]↵"

Не должно быть так.Это должен быть массив массивов.Вот как выглядит мой запрос axios:

const path = 'http://localhost:5000/worldMapData';
axios.post(path, varietyObject)
.then((res) => {
  console.log(res)
  console.log(typeof res.data)
  commit('setWineData', res.data)
})
.catch((error) => {
  console.log(error);
});

Вот как выглядит маршрут Python:

@app.route('/worldMapData', methods=['GET', 'POST'])
def route_seven():
map = Map()
if request.method == 'POST':
    post_data = request.get_json()
    variety = post_data.get('variety')
    wineData = map.get_wine_data(variety)
    print(wineData)
    return jsonify(wineData)

Теперь самое странное, как упоминалось ранее, это то, что я только что закончилпредыдущий проект делал то же самое без проблем.Я даже взял этот код, вставил его в свой текущий проект, и он работал нормально!Мне действительно любопытно, откуда возвращаются кареты в моем ответе.Вот еще один из ответов axios:

   headers: {content-type: "application/json"}
   request: XMLHttpRequest {onreadystatechange: ƒ, readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, …}
   status: 200
   statusText: "OK"

Если вам нужно увидеть код Python, на который делается запрос, здесь:

  def get_wine_data(self, variety):
    # print(self.data.dtypes)
    #This list will hold all of the country and wine scores
    wine_data = []
    #Getting all distinct countries
    countries = self.data.country.unique()
    for country in countries:
        #resetting the data for each loop
        data = self.data
        #This list will hold the data for a single country
        single_country = []
        data = data[(data.country == country) & (data.variety == variety)]
        #Getting the mean score.
        mean = data["points"].mean()
        #changing the format of the mean
        mean = float(format(mean, '.2f'))
        if math.isnan(mean):
            mean = 0
        if country == 'US':
            country = 'United States'
        single_country.append(country)
        single_country.append(mean)
        wine_data.append(single_country)
    return wine_data

Кстати, этоэто часть этого оригинального проекта:

data: Array(141), status: 200, statusText: "OK"

Это то, что я хочу увидеть в моем текущем проекте: data: Array (141) Наконец, прямо перед тем, как покинуть Python и Jsonifyинформация, прежде чем я отправлю его по типу данных, является спискомЛюбая помощь в этом вопросе будет оценена.

1 Ответ

0 голосов
/ 10 февраля 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...