我正在尝试解析一个JSON文件,该文件由使用tweepy流式传输的多条推文组成。当试图读取只包含一条推文的JSON文件时,我可以读它没问题。当试图读取由多个推文组成的JSON文件时,我收到错误。我认为我缺少某种类型的编码,或者JSON格式不正确。
这是错误:
Traceback (most recent call last):
File "C:\Repos\Testing\parse_json.py", line 16, in <module>
tweet = json.load(data_file)
File "C:\Python\Python36-32\lib\json\__init__.py", line 299, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "C:\Python\Python36-32\lib\json\__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "C:\Python\Python36-32\lib\json\decoder.py", line 342, in decode
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 3 column 1 (char 2753)
这是我的parse_json.py代码:
import json
with open('raw_tweets.json') as data_file:
tweet = json.load(data_file)
print(f"Created: {tweet['created_at']} \t Tweet: {tweet['text']} \t Language: {tweet['lang']}")
这是我的raw_tweets.json:
{"created_at":"Sun Nov 12 16:11:40 +0000 2017","id":929743506096001024,"id_str":"929743506096001024","text":"#Sentiment analysis of The Velveteen Rabbit https:\/\/t.co\/MLSItn74wz #keyphrase #language #nltk #pattern #python","source":"\u003ca href=\"http:\/\/www.ajaymatharu.com\/\" rel=\"nofollow\"\u003eTweet Old Post\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":811014723328090112,"id_str":"811014723328090112","name":"Addie","screen_name":"RealThinks_","location":null,"url":"http:\/\/students.washington.edu\/adelak\/","description":"Chemist. Data scientist. Dinosaur enthusiast. Pretty big on the whole \"being nice to people\" thing.","translator_type":"none","protected":false,"verified":false,"followers_count":439,"friends_count":388,"listed_count":36,"favourites_count":105,"statuses_count":974,"created_at":"Tue Dec 20 01:05:52 +0000 2016","utc_offset":-28800,"time_zone":"Pacific Time (US & Canada)","geo_enabled":false,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_link_color":"1B95E0","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/811016747037782017\/V32aJln5_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/811016747037782017\/V32aJln5_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/811014723328090112\/1482462522","default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"quote_count":0,"reply_count":0,"retweet_count":0,"favorite_count":0,"entities":{"hashtags":[{"text":"Sentiment","indices":[0,10]},{"text":"keyphrase","indices":[68,78]},{"text":"language","indices":[79,88]},{"text":"nltk","indices":[89,94]},{"text":"pattern","indices":[95,103]},{"text":"python","indices":[104,111]}],"urls":[{"url":"https:\/\/t.co\/MLSItn74wz","expanded_url":"http:\/\/students.washington.edu\/adelak\/2016\/12\/?p=18","display_url":"students.washington.edu\/adelak\/2016\/12\u2026","indices":[44,67]}],"user_mentions":[],"symbols":[]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"filter_level":"low","lang":"en","timestamp_ms":"1510503100309"}
{"created_at":"Sun Nov 12 16:11:53 +0000 2017","id":929743561217671168,"id_str":"929743561217671168","text":"RT @kdnuggets: Tips for Getting Started with Text Mining in #rstats and #Python https:\/\/t.co\/dWLXBTu7Ap https:\/\/t.co\/XRyRE9lej8","source":"\u003ca href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter for Android\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":219290077,"id_str":"219290077","name":"Lilia Quituisaca S","screen_name":"LiliaQuituisaca","location":"Guasuntos","url":"http:\/\/liliaquituisaca-poesias.blogspot.com\/","description":"Ingeniera Inform\u00e1tica. OpenSource. JAVA. R-project. Weka. Datamining. Simulaci\u00f3n. Escribo y declamo poes\u00eda -destino,sin miedo- El arte perfecciona los sentidos.","translator_type":"none","protected":false,"verified":false,"followers_count":1125,"friends_count":2308,"listed_count":631,"favourites_count":1228,"statuses_count":26375,"created_at":"Wed Nov 24 13:10:16 +0000 2010","utc_offset":-18000,"time_zone":"Quito","geo_enabled":true,"lang":"es","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/pbs.twimg.com\/profile_background_images\/378800000032598931\/b322745f32a73f540fa42b54c27ac75a.jpeg","profile_background_image_url_https":"https:\/\/pbs.twimg.com\/profile_background_images\/378800000032598931\/b322745f32a73f540fa42b54c27ac75a.jpeg","profile_background_tile":true,"profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/780178494466711552\/9ONWkWlC_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/780178494466711552\/9ONWkWlC_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/219290077\/1357069442","default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Sun Nov 12 15:42:02 +0000 2017","id":929736050687332354,"id_str":"929736050687332354","text":"Tips for Getting Started with Text Mining in #rstats and #Python https:\/\/t.co\/dWLXBTu7Ap https:\/\/t.co\/XRyRE9lej8","display_text_range":[0,88],"source":"\u003ca href=\"http:\/\/bufferapp.com\" rel=\"nofollow\"\u003eBuffer\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":20167623,"id_str":"20167623","name":"KDnuggets","screen_name":"kdnuggets","location":"Brookline, MA, USA","url":"https:\/\/www.kdnuggets.com\/","description":"Covering #AI, #Analytics, #BigData, #DataMining, #DataScience #MachineLearning, #DeepLearning. Founded by Gregory Piatetsky-Shapiro.","translator_type":"regular","protected":false,"verified":false,"followers_count":98870,"friends_count":400,"listed_count":5477,"favourites_count":448,"statuses_count":42854,"created_at":"Thu Feb 05 17:37:26 +0000 2009","utc_offset":-18000,"time_zone":"Eastern Time (US & Canada)","geo_enabled":false,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"0099B9","profile_background_image_url":"http:\/\/pbs.twimg.com\/profile_background_images\/378800000050609482\/c32d3d654da4eb7c0518e7bba2609522.jpeg","profile_background_image_url_https":"https:\/\/pbs.twimg.com\/profile_background_images\/378800000050609482\/c32d3d654da4eb7c0518e7bba2609522.jpeg","profile_background_tile":true,"profile_link_color":"0099B9","profile_sidebar_border_color":"5ED4DC","profile_sidebar_fill_color":"95E8EC","profile_text_color":"3C3940","profile_use_background_image":true,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/795788806008041473\/0nTPcRja_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/795788806008041473\/0nTPcRja_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/20167623\/1476546748","default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"quote_count":0,"reply_count":0,"retweet_count":9,"favorite_count":6,"entities":{"hashtags":[{"text":"rstats","indices":[45,52]},{"text":"Python","indices":[57,64]}],"urls":[{"url":"https:\/\/t.co\/dWLXBTu7Ap","expanded_url":"https:\/\/buff.ly\/2zyOtix","display_url":"buff.ly\/2zyOtix","indices":[65,88]}],"user_mentions":[],"symbols":[],"media":[{"id":929736048183336960,"id_str":"929736048183336960","indices":[89,112],"media_url":"http:\/\/pbs.twimg.com\/media\/DOcWAobX4AAf9ze.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/DOcWAobX4AAf9ze.jpg","url":"https:\/\/t.co\/XRyRE9lej8","display_url":"pic.twitter.com\/XRyRE9lej8","expanded_url":"https:\/\/twitter.com\/kdnuggets\/status\/929736050687332354\/photo\/1","type":"photo","sizes":{"large":{"w":800,"h":338,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":800,"h":338,"resize":"fit"},"small":{"w":680,"h":287,"resize":"fit"}}}]},"extended_entities":{"media":[{"id":929736048183336960,"id_str":"929736048183336960","indices":[89,112],"media_url":"http:\/\/pbs.twimg.com\/media\/DOcWAobX4AAf9ze.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/DOcWAobX4AAf9ze.jpg","url":"https:\/\/t.co\/XRyRE9lej8","display_url":"pic.twitter.com\/XRyRE9lej8","expanded_url":"https:\/\/twitter.com\/kdnuggets\/status\/929736050687332354\/photo\/1","type":"photo","sizes":{"large":{"w":800,"h":338,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":800,"h":338,"resize":"fit"},"small":{"w":680,"h":287,"resize":"fit"}}}]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"filter_level":"low","lang":"en"},"is_quote_status":false,"quote_count":0,"reply_count":0,"retweet_count":0,"favorite_count":0,"entities":{"hashtags":[{"text":"rstats","indices":[60,67]},{"text":"Python","indices":[72,79]}],"urls":[{"url":"https:\/\/t.co\/dWLXBTu7Ap","expanded_url":"https:\/\/buff.ly\/2zyOtix","display_url":"buff.ly\/2zyOtix","indices":[80,103]}],"user_mentions":[{"screen_name":"kdnuggets","name":"KDnuggets","id":20167623,"id_str":"20167623","indices":[3,13]}],"symbols":[],"media":[{"id":929736048183336960,"id_str":"929736048183336960","indices":[104,127],"media_url":"http:\/\/pbs.twimg.com\/media\/DOcWAobX4AAf9ze.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/DOcWAobX4AAf9ze.jpg","url":"https:\/\/t.co\/XRyRE9lej8","display_url":"pic.twitter.com\/XRyRE9lej8","expanded_url":"https:\/\/twitter.com\/kdnuggets\/status\/929736050687332354\/photo\/1","type":"photo","sizes":{"large":{"w":800,"h":338,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":800,"h":338,"resize":"fit"},"small":{"w":680,"h":287,"resize":"fit"}},"source_status_id":929736050687332354,"source_status_id_str":"929736050687332354","source_user_id":20167623,"source_user_id_str":"20167623"}]},"extended_entities":{"media":[{"id":929736048183336960,"id_str":"929736048183336960","indices":[104,127],"media_url":"http:\/\/pbs.twimg.com\/media\/DOcWAobX4AAf9ze.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/DOcWAobX4AAf9ze.jpg","url":"https:\/\/t.co\/XRyRE9lej8","display_url":"pic.twitter.com\/XRyRE9lej8","expanded_url":"https:\/\/twitter.com\/kdnuggets\/status\/929736050687332354\/photo\/1","type":"photo","sizes":{"large":{"w":800,"h":338,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":800,"h":338,"resize":"fit"},"small":{"w":680,"h":287,"resize":"fit"}},"source_status_id":929736050687332354,"source_status_id_str":"929736050687332354","source_user_id":20167623,"source_user_id_str":"20167623"}]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"filter_level":"low","lang":"en","timestamp_ms":"1510503113451"}
以下是我的听众的代码:
import tweepy
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import json
consumer_key = ''
consumer_secret = ''
access_token = ''
access_token_secret = ''
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
class MyListener(StreamListener):
def on_data(self, data):
try:
with open('raw_tweets.json', 'a') as f:
f.write(data)
print("Tweet")
return True
except BaseException as e:
print("Error on_data: %s" % str(e))
return True
def on_error(self, status):
print(status)
if __name__ == '__main__':
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
twitter_stream = Stream(auth, MyListener())
print("Streaming Tweets...")
twitter_stream.filter(track=['#python'], languages=['en'])
答案 0 :(得分:0)
错误来自您的JSON文件,它应该在这样的数组中:
[{'property1':'value1', 'property2':'value2'},{'property1':'value1', 'property2':'value2'}]
这就是你的JSON文件的样子:
[{
"created_at": "Sun Nov 12 16:11:40 +0000 2017",
"id": 929743506096001024,
"id_str": "929743506096001024",
"text": "#Sentiment analysis of The Velveteen Rabbit https:\/\/t.co\/MLSItn74wz #keyphrase #language #nltk #pattern #python",
"source": "\u003ca href=\"http:\/\/www.ajaymatharu.com\/\" rel=\"nofollow\"\u003eTweet Old Post\u003c\/a\u003e",
"truncated": false,
"in_reply_to_status_id": null,
"in_reply_to_status_id_str": null,
"in_reply_to_user_id": null,
"in_reply_to_user_id_str": null,
"in_reply_to_screen_name": null,
"user": {
"id": 811014723328090112,
"id_str": "811014723328090112",
"name": "Addie",
"screen_name": "RealThinks_",
"location": null,
"url": "http:\/\/students.washington.edu\/adelak\/",
"description": "Chemist. Data scientist. Dinosaur enthusiast. Pretty big on the whole \"being nice to people\" thing.",
"translator_type": "none",
"protected": false,
"verified": false,
"followers_count": 439,
"friends_count": 388,
"listed_count": 36,
"favourites_count": 105,
"statuses_count": 974,
"created_at": "Tue Dec 20 01:05:52 +0000 2016",
"utc_offset": -28800,
"time_zone": "Pacific Time (US & Canada)",
"geo_enabled": false,
"lang": "en",
"contributors_enabled": false,
"is_translator": false,
"profile_background_color": "000000",
"profile_background_image_url": "http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png",
"profile_background_image_url_https": "https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png",
"profile_background_tile": false,
"profile_link_color": "1B95E0",
"profile_sidebar_border_color": "000000",
"profile_sidebar_fill_color": "000000",
"profile_text_color": "000000",
"profile_use_background_image": false,
"profile_image_url": "http:\/\/pbs.twimg.com\/profile_images\/811016747037782017\/V32aJln5_normal.jpg",
"profile_image_url_https": "https:\/\/pbs.twimg.com\/profile_images\/811016747037782017\/V32aJln5_normal.jpg",
"profile_banner_url": "https:\/\/pbs.twimg.com\/profile_banners\/811014723328090112\/1482462522",
"default_profile": false,
"default_profile_image": false,
"following": null,
"follow_request_sent": null,
"notifications": null
},
"geo": null,
"coordinates": null,
"place": null,
"contributors": null,
"is_quote_status": false,
"quote_count": 0,
"reply_count": 0,
"retweet_count": 0,
"favorite_count": 0,
"entities": {
"hashtags": [{
"text": "Sentiment",
"indices": [0, 10]
}, {
"text": "keyphrase",
"indices": [68, 78]
}, {
"text": "language",
"indices": [79, 88]
}, {
"text": "nltk",
"indices": [89, 94]
}, {
"text": "pattern",
"indices": [95, 103]
}, {
"text": "python",
"indices": [104, 111]
}],
"urls": [{
"url": "https:\/\/t.co\/MLSItn74wz",
"expanded_url": "http:\/\/students.washington.edu\/adelak\/2016\/12\/?p=18",
"display_url": "students.washington.edu\/adelak\/2016\/12\u2026",
"indices": [44, 67]
}],
"user_mentions": [],
"symbols": []
},
"favorited": false,
"retweeted": false,
"possibly_sensitive": false,
"filter_level": "low",
"lang": "en",
"timestamp_ms": "1510503100309"
}, {
"created_at": "Sun Nov 12 16:11:53 +0000 2017",
"id": 929743561217671168,
"id_str": "929743561217671168",
"text": "RT @kdnuggets: Tips for Getting Started with Text Mining in #rstats and #Python https:\/\/t.co\/dWLXBTu7Ap https:\/\/t.co\/XRyRE9lej8",
"source": "\u003ca href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter for Android\u003c\/a\u003e",
"truncated": false,
"in_reply_to_status_id": null,
"in_reply_to_status_id_str": null,
"in_reply_to_user_id": null,
"in_reply_to_user_id_str": null,
"in_reply_to_screen_name": null,
"user": {
"id": 219290077,
"id_str": "219290077",
"name": "Lilia Quituisaca S",
"screen_name": "LiliaQuituisaca",
"location": "Guasuntos",
"url": "http:\/\/liliaquituisaca-poesias.blogspot.com\/",
"description": "Ingeniera Inform\u00e1tica. OpenSource. JAVA. R-project. Weka. Datamining. Simulaci\u00f3n. Escribo y declamo poes\u00eda -destino,sin miedo- El arte perfecciona los sentidos.",
"translator_type": "none",
"protected": false,
"verified": false,
"followers_count": 1125,
"friends_count": 2308,
"listed_count": 631,
"favourites_count": 1228,
"statuses_count": 26375,
"created_at": "Wed Nov 24 13:10:16 +0000 2010",
"utc_offset": -18000,
"time_zone": "Quito",
"geo_enabled": true,
"lang": "es",
"contributors_enabled": false,
"is_translator": false,
"profile_background_color": "C0DEED",
"profile_background_image_url": "http:\/\/pbs.twimg.com\/profile_background_images\/378800000032598931\/b322745f32a73f540fa42b54c27ac75a.jpeg",
"profile_background_image_url_https": "https:\/\/pbs.twimg.com\/profile_background_images\/378800000032598931\/b322745f32a73f540fa42b54c27ac75a.jpeg",
"profile_background_tile": true,
"profile_link_color": "0084B4",
"profile_sidebar_border_color": "FFFFFF",
"profile_sidebar_fill_color": "DDEEF6",
"profile_text_color": "333333",
"profile_use_background_image": true,
"profile_image_url": "http:\/\/pbs.twimg.com\/profile_images\/780178494466711552\/9ONWkWlC_normal.jpg",
"profile_image_url_https": "https:\/\/pbs.twimg.com\/profile_images\/780178494466711552\/9ONWkWlC_normal.jpg",
"profile_banner_url": "https:\/\/pbs.twimg.com\/profile_banners\/219290077\/1357069442",
"default_profile": false,
"default_profile_image": false,
"following": null,
"follow_request_sent": null,
"notifications": null
},
"geo": null,
"coordinates": null,
"place": null,
"contributors": null,
"retweeted_status": {
"created_at": "Sun Nov 12 15:42:02 +0000 2017",
"id": 929736050687332354,
"id_str": "929736050687332354",
"text": "Tips for Getting Started with Text Mining in #rstats and #Python https:\/\/t.co\/dWLXBTu7Ap https:\/\/t.co\/XRyRE9lej8",
"display_text_range": [0, 88],
"source": "\u003ca href=\"http:\/\/bufferapp.com\" rel=\"nofollow\"\u003eBuffer\u003c\/a\u003e",
"truncated": false,
"in_reply_to_status_id": null,
"in_reply_to_status_id_str": null,
"in_reply_to_user_id": null,
"in_reply_to_user_id_str": null,
"in_reply_to_screen_name": null,
"user": {
"id": 20167623,
"id_str": "20167623",
"name": "KDnuggets",
"screen_name": "kdnuggets",
"location": "Brookline, MA, USA",
"url": "https:\/\/www.kdnuggets.com\/",
"description": "Covering #AI, #Analytics, #BigData, #DataMining, #DataScience #MachineLearning, #DeepLearning. Founded by Gregory Piatetsky-Shapiro.",
"translator_type": "regular",
"protected": false,
"verified": false,
"followers_count": 98870,
"friends_count": 400,
"listed_count": 5477,
"favourites_count": 448,
"statuses_count": 42854,
"created_at": "Thu Feb 05 17:37:26 +0000 2009",
"utc_offset": -18000,
"time_zone": "Eastern Time (US & Canada)",
"geo_enabled": false,
"lang": "en",
"contributors_enabled": false,
"is_translator": false,
"profile_background_color": "0099B9",
"profile_background_image_url": "http:\/\/pbs.twimg.com\/profile_background_images\/378800000050609482\/c32d3d654da4eb7c0518e7bba2609522.jpeg",
"profile_background_image_url_https": "https:\/\/pbs.twimg.com\/profile_background_images\/378800000050609482\/c32d3d654da4eb7c0518e7bba2609522.jpeg",
"profile_background_tile": true,
"profile_link_color": "0099B9",
"profile_sidebar_border_color": "5ED4DC",
"profile_sidebar_fill_color": "95E8EC",
"profile_text_color": "3C3940",
"profile_use_background_image": true,
"profile_image_url": "http:\/\/pbs.twimg.com\/profile_images\/795788806008041473\/0nTPcRja_normal.jpg",
"profile_image_url_https": "https:\/\/pbs.twimg.com\/profile_images\/795788806008041473\/0nTPcRja_normal.jpg",
"profile_banner_url": "https:\/\/pbs.twimg.com\/profile_banners\/20167623\/1476546748",
"default_profile": false,
"default_profile_image": false,
"following": null,
"follow_request_sent": null,
"notifications": null
},
"geo": null,
"coordinates": null,
"place": null,
"contributors": null,
"is_quote_status": false,
"quote_count": 0,
"reply_count": 0,
"retweet_count": 9,
"favorite_count": 6,
"entities": {
"hashtags": [{
"text": "rstats",
"indices": [45, 52]
}, {
"text": "Python",
"indices": [57, 64]
}],
"urls": [{
"url": "https:\/\/t.co\/dWLXBTu7Ap",
"expanded_url": "https:\/\/buff.ly\/2zyOtix",
"display_url": "buff.ly\/2zyOtix",
"indices": [65, 88]
}],
"user_mentions": [],
"symbols": [],
"media": [{
"id": 929736048183336960,
"id_str": "929736048183336960",
"indices": [89, 112],
"media_url": "http:\/\/pbs.twimg.com\/media\/DOcWAobX4AAf9ze.jpg",
"media_url_https": "https:\/\/pbs.twimg.com\/media\/DOcWAobX4AAf9ze.jpg",
"url": "https:\/\/t.co\/XRyRE9lej8",
"display_url": "pic.twitter.com\/XRyRE9lej8",
"expanded_url": "https:\/\/twitter.com\/kdnuggets\/status\/929736050687332354\/photo\/1",
"type": "photo",
"sizes": {
"large": {
"w": 800,
"h": 338,
"resize": "fit"
},
"thumb": {
"w": 150,
"h": 150,
"resize": "crop"
},
"medium": {
"w": 800,
"h": 338,
"resize": "fit"
},
"small": {
"w": 680,
"h": 287,
"resize": "fit"
}
}
}]
},
"extended_entities": {
"media": [{
"id": 929736048183336960,
"id_str": "929736048183336960",
"indices": [89, 112],
"media_url": "http:\/\/pbs.twimg.com\/media\/DOcWAobX4AAf9ze.jpg",
"media_url_https": "https:\/\/pbs.twimg.com\/media\/DOcWAobX4AAf9ze.jpg",
"url": "https:\/\/t.co\/XRyRE9lej8",
"display_url": "pic.twitter.com\/XRyRE9lej8",
"expanded_url": "https:\/\/twitter.com\/kdnuggets\/status\/929736050687332354\/photo\/1",
"type": "photo",
"sizes": {
"large": {
"w": 800,
"h": 338,
"resize": "fit"
},
"thumb": {
"w": 150,
"h": 150,
"resize": "crop"
},
"medium": {
"w": 800,
"h": 338,
"resize": "fit"
},
"small": {
"w": 680,
"h": 287,
"resize": "fit"
}
}
}]
},
"favorited": false,
"retweeted": false,
"possibly_sensitive": false,
"filter_level": "low",
"lang": "en"
},
"is_quote_status": false,
"quote_count": 0,
"reply_count": 0,
"retweet_count": 0,
"favorite_count": 0,
"entities": {
"hashtags": [{
"text": "rstats",
"indices": [60, 67]
}, {
"text": "Python",
"indices": [72, 79]
}],
"urls": [{
"url": "https:\/\/t.co\/dWLXBTu7Ap",
"expanded_url": "https:\/\/buff.ly\/2zyOtix",
"display_url": "buff.ly\/2zyOtix",
"indices": [80, 103]
}],
"user_mentions": [{
"screen_name": "kdnuggets",
"name": "KDnuggets",
"id": 20167623,
"id_str": "20167623",
"indices": [3, 13]
}],
"symbols": [],
"media": [{
"id": 929736048183336960,
"id_str": "929736048183336960",
"indices": [104, 127],
"media_url": "http:\/\/pbs.twimg.com\/media\/DOcWAobX4AAf9ze.jpg",
"media_url_https": "https:\/\/pbs.twimg.com\/media\/DOcWAobX4AAf9ze.jpg",
"url": "https:\/\/t.co\/XRyRE9lej8",
"display_url": "pic.twitter.com\/XRyRE9lej8",
"expanded_url": "https:\/\/twitter.com\/kdnuggets\/status\/929736050687332354\/photo\/1",
"type": "photo",
"sizes": {
"large": {
"w": 800,
"h": 338,
"resize": "fit"
},
"thumb": {
"w": 150,
"h": 150,
"resize": "crop"
},
"medium": {
"w": 800,
"h": 338,
"resize": "fit"
},
"small": {
"w": 680,
"h": 287,
"resize": "fit"
}
},
"source_status_id": 929736050687332354,
"source_status_id_str": "929736050687332354",
"source_user_id": 20167623,
"source_user_id_str": "20167623"
}]
},
"extended_entities": {
"media": [{
"id": 929736048183336960,
"id_str": "929736048183336960",
"indices": [104, 127],
"media_url": "http:\/\/pbs.twimg.com\/media\/DOcWAobX4AAf9ze.jpg",
"media_url_https": "https:\/\/pbs.twimg.com\/media\/DOcWAobX4AAf9ze.jpg",
"url": "https:\/\/t.co\/XRyRE9lej8",
"display_url": "pic.twitter.com\/XRyRE9lej8",
"expanded_url": "https:\/\/twitter.com\/kdnuggets\/status\/929736050687332354\/photo\/1",
"type": "photo",
"sizes": {
"large": {
"w": 800,
"h": 338,
"resize": "fit"
},
"thumb": {
"w": 150,
"h": 150,
"resize": "crop"
},
"medium": {
"w": 800,
"h": 338,
"resize": "fit"
},
"small": {
"w": 680,
"h": 287,
"resize": "fit"
}
},
"source_status_id": 929736050687332354,
"source_status_id_str": "929736050687332354",
"source_user_id": 20167623,
"source_user_id_str": "20167623"
}]
},
"favorited": false,
"retweeted": false,
"possibly_sensitive": false,
"filter_level": "low",
"lang": "en",
"timestamp_ms": "1510503113451"
}]
网上有一些工具validate JSONS否则一些IDE也可以这样做。