如何在熊猫中将Nonetype对象转换为字符串或DataFrame

时间:2018-10-30 10:38:43

标签: python pandas

我的程序中的“ 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 :(得分:1)

您当前正在从协程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()。如果要使用DataFrame,请查看Pandas文档,了解如何从Python字典中实例化DataFrame。