V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Ne
V2EX  ›  Python

requests 爬了数据,解释提取不了,网上找了 3 天还是没办法。请教帮忙

  •  
  •   Ne · 2022-09-07 23:09:50 +08:00 · 3199 次点击
    这是一个创建于 812 天前的主题,其中的信息可能已经有所发展或是发生改变。

    response = s.post(url_2, params=params, headers=headers, data=data, verify=False) json_data = response.json() pprint.pprint(json_data)

    下面是打印出来的结果

    [{'rows': [{'BillType': '無感', 'BillTypeOrg': 20, 'BufferTime': 1.0167, 'CardCode': '110101020191119997971BBF', 'CashAmt': 0.0, 'ChargeMin1': 8.0, 'ChargeMin2': 3.0, 'ChargeMin3': 4.0, 'VoidCharge': 0.0}], 'total': 2}]

    请问如何提取 'BillTypeOrg' 这个值?

    网上学着做的要么提取出来的是 [] ,要么是 TypeError: list indices must be integers or slices, not str

    25 条回复    2022-09-20 18:34:04 +08:00
    herich
        1
    herich  
       2022-09-07 23:13:47 +08:00   ❤️ 2
    啊这,这么简单的活就交给 2 楼吧
    pcbl
        2
    pcbl  
       2022-09-07 23:14:40 +08:00 via Android   ❤️ 1
    json_data[0]['rows'][0]['BillTypeOrg' ]
    pcbl
        3
    pcbl  
       2022-09-07 23:15:00 +08:00 via Android   ❤️ 2
    艹,我是二楼
    wxf666
        4
    wxf666  
       2022-09-07 23:15:40 +08:00   ❤️ 1
    a[0]['rows'][0]['BillTypeOrg']

    现在连 Python 基础知识都不熟悉了么。。
    wxf666
        5
    wxf666  
       2022-09-07 23:18:16 +08:00   ❤️ 1
    噢,有个变量名,4 楼改成 json_data[0][...
    Ne
        6
    Ne  
    OP
       2022-09-07 23:38:30 +08:00
    json_data = response.json()
    data_list = json_data[0]['rows'][0]['BillTypeOrg']
    print(data_list)

    原来要加 [0]

    这样可以打印出来了,感谢上面各位!!!
    Eiden
        7
    Eiden  
       2022-09-07 23:58:34 +08:00   ❤️ 1
    这个问题甚至跟 py 没关系
    raycool
        8
    raycool  
       2022-09-08 00:10:02 +08:00   ❤️ 1
    这个基础的过分了。
    blankmiss
        9
    blankmiss  
       2022-09-08 00:12:48 +08:00   ❤️ 1
    确实 你不会连数据结构都没瞄一眼吧
    wonderfulcxm
        10
    wonderfulcxm  
       2022-09-08 00:27:16 +08:00 via iPhone   ❤️ 3
    闻道有先后,各位还是不要打击 op 学习的热情吧
    Pastsong
        11
    Pastsong  
       2022-09-08 00:37:09 +08:00   ❤️ 1
    我有个观察,很多初学者的编程入门项目都是爬虫,不知道为什么。
    0044200420
        12
    0044200420  
       2022-09-08 00:58:06 +08:00   ❤️ 1
    @Pastsong 教程多
    Puteulanus
        13
    Puteulanus  
       2022-09-08 00:59:33 +08:00   ❤️ 1
    @Pastsong 大部分人上网主要用浏览器,当开始试图用程序解决生活问题的时候——论坛签到,网课刷时间,上架通知,投票刷票,色图打包。。需求大多会归到爬虫上
    julyclyde
        14
    julyclyde  
       2022-09-08 09:40:29 +08:00   ❤️ 1
    @Pastsong 毕竟还有一些外部性,比“纯在本机做题”有意思多了
    julyclyde
        15
    julyclyde  
       2022-09-08 09:54:08 +08:00   ❤️ 1
    一层层输出出来看看就明白啦
    jalena
        16
    jalena  
       2022-09-08 10:26:53 +08:00   ❤️ 1
    他居然不认识集合!
    ainon
        17
    ainon  
       2022-09-08 11:47:48 +08:00   ❤️ 1
    @herich 哈哈哈哈哈
    Zy143L
        18
    Zy143L  
       2022-09-08 19:53:36 +08:00 via Android   ❤️ 1
    以后拿到的 json
    可以先去 vscode 或者 jsoncn 上格式化一下
    看看集合嵌套
    有[ ] 就用[012345]对应数字
    wuwukai007
        19
    wuwukai007  
       2022-09-09 15:12:34 +08:00   ❤️ 1
    分不清是不是钓鱼了
    Ne
        20
    Ne  
    OP
       2022-09-09 21:25:29 +08:00 via Android
    不是钓鱼,已谷歌了 3 天,才上 v2 提问。网上没有一个教程之类的说提出前面加 [0],当然是我自己不懂的,刚开始学习,只想方便工作的。
    Joeith
        21
    Joeith  
       2022-09-10 20:51:18 +08:00
    这个是基础中的基础了。建议回炉重学,再来考虑做爬虫项目···
    多说一句,爬虫是深坑。
    cy1027
        22
    cy1027  
       2022-09-13 16:21:24 +08:00
    问的问题太基础感觉是对回答者的不负责任,要问的应该是解决问题的思路,或者请人指点自己不足的地方,为了解决问题要掌握哪些知识,而不是上来就问 1+1 等于几,问十次有什么用呢
    gumupaier
        23
    gumupaier  
       2022-09-13 18:03:01 +08:00
    建议重学了
    chunhai
        24
    chunhai  
       2022-09-19 19:49:33 +08:00
    你甚至不知道你这返回的是个集合,然后如何从集合里边读取字典
    Ne
        25
    Ne  
    OP
       2022-09-20 18:34:04 +08:00 via Android
    @cy1027 对的,现在我知道是集合了,再从集合或里面的组提取数据。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5399 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 07:54 · PVG 15:54 · LAX 23:54 · JFK 02:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.