Как преобразовать объект не тип в строку или DataFrame в пандах - PullRequest
0 голосов
/ 30 октября 2018

У меня есть некоторые проблемы с объектом 'NoneType' в моей программе (написано на пандах). Это мой код:

import asyncio
from aiohttp import ClientSession
from pyairvisual import Client
import pandas as pd

place = ['Brussels','Steenokkerzeel','Antwerpen','Aarschot','Amsterdam','London']
state1 = ['Brussels Capital','Flanders','Flanders','Flanders','North Holland','England']

n = 2
async def main() -> None:
    """Create the aiohttp session and run the example."""
    async with ClientSession() as websession:
        client = Client('fWw2GEy25CqmFQMaA', websession)

        data = await client.data.city(
        city = place[n], state = state1[n], country = 'Belgium')
        print(data)
asyncio.get_event_loop().run_until_complete(main())

И я попробовал это:

asyncio.get_event_loop().run_until_complete(main()).to_string()

Но результат был:

{'city': 'Antwerpen', 'state': 'Flanders', 'country': 'Belgium', 'location': 
{'type': 'Point', 'coordinates': [4.34100506499574, 51.1702980406645]}, 
'current': {'weather': {'ts': '2018-10-30T06:00:00.000Z', 'hu': 60, 'ic': 
'09n', 'pr': 986, 'tp': 4, 'wd': 350, 'ws': 1.5}, 'pollution': {'ts': '2018- 
 10-30T07:00:00.000Z', 'aqius': 33, 'mainus': 'p2', 'aqicn': 16, 'maincn': 
 'n2'}}}
 ---------------------------------------------------------------------------
 AttributeError                            Traceback (most recent call last)
 <ipython-input-22-a1764c0a80fe> in <module>()
 ----> 1 asyncio.get_event_loop().run_until_complete(main()).to_string()

 AttributeError: 'NoneType' object has no attribute 'to_string'

Я хочу получить данные между наградами и установить их в строку или DataFrame, но я не знаю, как преобразовать объект 'NoneType' в строку или DataFrame. Кто-нибудь еще знает решение?

Спасибо.

1 Ответ

0 голосов
/ 30 октября 2018

В настоящее время вы возвращаете None из своей сопрограммы main(), как вы указываете с помощью подсказок типа. (И поскольку возвращаемое значение print() равно None).

loop.run_until_complete() передаст возвращаемое значение main(), равное None, и в результате вы пытаетесь вызвать None.to_string().

Вам необходимо return объект из main(). Вам решать, что это такое:

async def main() -> None:
    async with ClientSession() as websession:
        client = Client('fWw2GEy25CqmFQMaA', websession)
        data = await client.data.city(
            city=place[n], state=state1[n], country='Belgium')
    return data

Если вам нужна строка, вместо .to_string(), используйте json.dumps() в результате вызова asyncio. Если вам нужен DataFrame, ознакомьтесь с документацией Pandas о том, как создать экземпляр DataFrame из словаря Python.

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