【发布时间】:2014-12-28 21:18:02
【问题描述】:
我的最终目标是将 API 调用中的 JSON 数据解析为 CSV 文件。我正在使用 Yelp API http://www.yelp.com/developers/documentation/v2/examples 的示例代码。我得到的最好的是将数据写入 CSV 文件,但这不是很漂亮。我相信我没有先将数据放入 Python 字典,但我研究并尝试了一些让我无处可去的方法。
try:
CSVfile = open('C:\Users\Petr Fedorov\Desktop\YelpAPI.csv', "wb")
response = json.dump(conn.read(),CSVfile,sort_keys=True)
#response = json.loads(conn.read()) #this is the original code under try:
finally:
conn.close()
CSVfile.close()
return response
我浏览了以下帖子,但无法采用他们的方法。
Parsing values from a JSON file using Python? How do I write JSON data to a file in Python? Creating a JSON response using Django and Python
非常感谢您在提供代码或指导我正确方向方面所付出的时间和精力。
这是带有原始代码的示例输出... response = json.loads(conn.read())
Result for business "affordable-interior-design-new-york" found:
{ u'categories': [[u'Interior Design', u'interiordesign']],
u'display_phone': u'+1-917-686-1319',
u'id': u'affordable-interior-design-new-york',
u'image_url': u'http://s3-media1.fl.yelpcdn.com/bphoto/taBV7OM7mNyS_pQD7ifSVw/ms.jpg',
u'is_claimed': True,
u'is_closed': False,
u'location': { u'address': [],
u'city': u'New York',
u'coordinate': { u'latitude': 40.7376543584561,
u'longitude': -74.0053272269531},
u'country_code': u'US',
u'display_address': [u'West Village', u'New York, NY 10014'],
u'geo_accuracy': 9.5,
u'neighborhoods': [u'West Village'],
u'postal_code': u'10014',
u'state_code': u'NY'},
u'mobile_url': u'http://m.yelp.com/biz/affordable-interior-design-new-york',
u'name': u'Affordable Interior Design',
u'phone': u'9176861319',
u'rating': 5.0,
u'rating_img_url': u'http://s3-media1.fl.yelpcdn.com/assets/2/www/img/f1def11e4e79/ico/stars/v1/stars_5.png',
u'rating_img_url_large': u'http://s3-media3.fl.yelpcdn.com/assets/2/www/img/22affc4e6c38/ico/stars/v1/stars_large_5.png',
u'rating_img_url_small': u'http://s3-media1.fl.yelpcdn.com/assets/2/www/img/c7623205d5cd/ico/stars/v1/stars_small_5.png',
u'review_count': 10,
u'reviews': [ { u'excerpt': u'Classes are structured in a very practical manner. It sets up a basic layout and gives you a foundation about what to take care of step-by-step.\nAnd yes,...',
u'id': u'Vu5-xvjUII0wCV3Q-1vz8w',
u'rating': 4,
u'rating_image_large_url': u'http://s3-media2.fl.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png',
u'rating_image_small_url': u'http://s3-media4.fl.yelpcdn.com/assets/2/www/img/f62a5be2f902/ico/stars/v1/stars_small_4.png',
u'rating_image_url': u'http://s3-media4.fl.yelpcdn.com/assets/2/www/img/c2f3dd9799a5/ico/stars/v1/stars_4.png',
u'time_created': 1324256900,
u'user': { u'id': u'r9ecgI5mnHgPo4W0fPRqPA',
u'image_url': u'http://s3-media4.fl.yelpcdn.com/photo/kcsQCRHtTmZcwPtE7_aeAQ/ms.jpg',
u'name': u'Wendy G.'}}],
u'snippet_image_url': u'http://s3-media4.fl.yelpcdn.com/assets/2/www/img/cc4afe21892e/default_avatars/user_medium_square.png',
u'snippet_text': u'So much more than I could have hoped for. Betsy is fun, funny, and REALLY good at Interior Design.\n\nThe 3 hour plan was perfect.',
u'url': u'http://www.yelp.com/biz/affordable-interior-design-new-york'}
【问题讨论】:
-
如果您可以选择,我的第一个建议是不序列化为 CSV。 JSON 是一种完美的序列化格式。除此之外,您需要发布示例输入和所需的输出; JSON->CSV 没有通用映射,因为 JSON 支持任意嵌套结构而 CSV 不支持。
-
@roippi 我想输出到 CSV,因为那将是数据的最终目的地。我添加了原始代码的输出。任何指导表示赞赏。就像我提到的,我是 Python 的新手。我在 VBA 中编写了一些代码,但仅此而已,这就是为什么我完全迷失在 JSON、字典、转换等方面。再次感谢您的任何指导。
-
json是嵌套数据结构,csv文件一般都是扁平的——(除非你想要重复的列)——你确定需要csv吗?
标签: python json parsing csv import