Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python在JSON对象模式下解析iTunes id查找时遇到问题_Python_Json_Jsonobject_Python 3.5 - Fatal编程技术网

Python在JSON对象模式下解析iTunes id查找时遇到问题

Python在JSON对象模式下解析iTunes id查找时遇到问题,python,json,jsonobject,python-3.5,Python,Json,Jsonobject,Python 3.5,例如,我试图从itunes查找工具解析有关应用程序的信息 现在我正在尝试使用请求、JSON和JSON对象模式打开连接。但是,架构不断失败,出现以下错误: Traceback (most recent call last): File "parse_and_query.py", line 33, in <module> details = get_app_details(880047117) File "/usr/lib/python3.5/site-packages/

例如,我试图从itunes查找工具解析有关应用程序的信息

现在我正在尝试使用请求、JSON和JSON对象模式打开连接。但是,架构不断失败,出现以下错误:

Traceback (most recent call last):
  File "parse_and_query.py", line 33, in <module>
    details = get_app_details(880047117)
  File "/usr/lib/python3.5/site-packages/jsonobjects/schema.py", line 87, in wrapper
    return self.parse(func(*args, **kwargs))
  File "/usr/lib/python3.5/site-packages/jsonobjects/fields.py", line 169, in parse
    return self.run_validation(value)
  File "/usr/lib/python3.5/site-packages/jsonobjects/fields.py", line 136, in run_validation
    is_empty, value = self.validate_empty_values(value)
  File "/usr/lib/python3.5/site-packages/jsonobjects/fields.py", line 105, in validate_empty_values
    self.fail('required')
  File "/usr/lib/python3.5/site-packages/jsonobjects/fields.py", line 165, in fail
    raise ValidationError(msg.format(**kwargs), self.field_name)
jsonobjects.exceptions.ValidationError: ['This field is required.']

为什么要使用jsonobject?只有在提供服务时,而不是在使用服务时,才需要这种类型的解析。我只是想把信息分解成一个我可以操纵的对象。有没有更简单的方法?你说的“操纵”是什么意思?导入json;loads(results[0])为您提供了一个可以自由使用的本机Python对象。
#!/usr/local/bin/python3.5                                                      

import json                                                                     
import requests                                                                 
import jsonobjects as jo                                                        
from jsonschema import Draft4Validator                                          


class iTunesAppSchema(jo.Schema):                                               
    id = jo.IntegerField('trackId')                                             
    url = jo.Field('trackViewUrl')                                              
    name = jo.StringField('trackName')                                           
    rating = jo.FloatField('averageUserRating')                                    
    reviews = jo.IntegerField('userRatingCountForCurrentVersion')                  
    version = jo.StringField('version')                                            
    bundle_id = jo.StringField('bundleId')                                         
    publisher_id = jo.IntegerField('artistId')                                     
    publisher_url = jo.Field('artistViewUrl')                                      
    publisher_name = jo.StringField('artistName')                                  
    categories = jo.ListField('genres', child=jo.StringField())                    



parser = iTunesAppSchema('results[0]')                                             

@parser.as_decorator                                                               
def get_app_details(app_id):                                                       
    url = 'https://itunes.apple.com/lookup?id={}'                                  
    return requests.get(url.format(app_id)).json()                                 

# https://itunes.apple.com/lookup?id=880047117                                     
details = get_app_details(880047117)                                               
print(details)