gpt4 book ai didi

php - 使用php将json形式的twitter响应解析到mysql数据库

转载 作者:行者123 更新时间:2023-11-29 13:11:50 24 4
gpt4 key购买 nike

我已成功连接到 Twitter API,并根据搜索词提取了一些推文。我已成功将这些推文发送到 json 文件。我希望将这些保存到 mysql 数据库,但只有 twitter id、文本和发送推文的人,但我很满意地收到此错误:

注意:第 18 行尝试获取 xxxxxxx 中非对象的属性

注意:第 19 行尝试获取 xxxxxxx 中非对象的属性

注意:第 20 行尝试获取 xxxxxxx 中非对象的属性数组 ( [id] => [text] => [name] => )

这是我的代码:

    <?php

$str = "working";
$con = mysqli_connect("xxxx","xxxx","xxxx","xxxx");

// Check connection
if (mysqli_connect_errno()) {
echo 'Failed to connect to MySQL: ' . mysqli_connect_error();
exit();
}else{
echo $str;
}

$list = file_get_contents('tweets.json');
$json = json_decode($list, true );
//print_r($json);

$tweets = array(
'id' => $json->id,
'text' => $json->text,
'name' => $json->name,
);
print_r($tweets);

$db_insert = mysql_query("INSERT INTO tweets(from, tweet, tweetid) VALUES ('name', 'text','id')");




?>
Array
(
[statuses] => Array
(
[0] => Array
(
[metadata] => Array
(
[result_type] => recent
[iso_language_code] => en
)

[created_at] => Sun Feb 23 21:50:00 +0000 2014
[id] => 4.3770592875932E+17
[id_str] => 437705928759320577
[text] => 2 new iPhone leads have just broken within 5 minutes of each. What are the odds of that?! No phone for a few days then!!!!
[source] => Twitter for iPad
[truncated] =>
[in_reply_to_status_id] =>
[in_reply_to_status_id_str] =>
[in_reply_to_user_id] =>
[in_reply_to_user_id_str] =>
[in_reply_to_screen_name] =>
[user] => Array
(
[id] => 221418717
[id_str] => 221418717
[name] => Craig Price
[screen_name] => CraigPrice1
[location] => Glanamman
[description] => Beer & Sport!
[url] =>
[entities] => Array
(
[description] => Array
(
[urls] => Array
(
)

)

)

[protected] =>
[followers_count] => 269
[friends_count] => 765
[listed_count] => 1
[created_at] => Tue Nov 30 16:28:40 +0000 2010
[favourites_count] => 520
[utc_offset] => 0
[time_zone] => London
[geo_enabled] => 1
[verified] =>
[statuses_count] => 2852
[lang] => en
[contributors_enabled] =>
[is_translator] =>
[is_translation_enabled] =>
[profile_background_color] => 0F0F0F
[profile_background_image_url] => http://abs.twimg.com/images/themes/theme15/bg.png
[profile_background_image_url_https] => https://abs.twimg.com/images/themes/theme15/bg.png
[profile_background_tile] => 1
[profile_image_url] => http://pbs.twimg.com/profile_images/435485486153756672/cSzrw5eX_normal.jpeg
[profile_image_url_https] => https://pbs.twimg.com/profile_images/435485486153756672/cSzrw5eX_normal.jpeg
[profile_banner_url] => https://pbs.twimg.com/profile_banners/221418717/1392662771
[profile_link_color] => FA0000
[profile_sidebar_border_color] => EB0000
[profile_sidebar_fill_color] => C0DFEC
[profile_text_color] => 333333
[profile_use_background_image] => 1
[default_profile] =>
[default_profile_image] =>
[following] =>
[follow_request_sent] =>
[notifications] =>
)

[geo] =>
[coordinates] =>
[place] =>
[contributors] =>
[retweet_count] => 0
[favorite_count] => 0
[entities] => Array
(
[hashtags] => Array
(
)

[symbols] => Array
(
)

[urls] => Array
(
)

[user_mentions] => Array
(
)

)

[favorited] =>
[retweeted] =>
[lang] => en
)

[1] => Array
(
[metadata] => Array
(
[result_type] => recent
[iso_language_code] => en
)

[created_at] => Sun Feb 23 21:26:01 +0000 2014
[id] => 4.3769989372629E+17
[id_str] => 437699893726289920
[text] => @Mogz1457 how about a broken IPhone 3 eh?
[source] => Twitter for iPhone
[truncated] =>
[in_reply_to_status_id] => 4.3757491419192E+17
[in_reply_to_status_id_str] => 437574914191917056
[in_reply_to_user_id] => 347149526
[in_reply_to_user_id_str] => 347149526
[in_reply_to_screen_name] => Mogz1457
[user] => Array
(
[id] => 2353482857
[id_str] => 2353482857
[name] => Gwilym McCann
[screen_name] => theBigg_Mac
[location] => Cymru/Wales
[description] => The original Big Mac
[url] =>
[entities] => Array
(
[description] => Array
(
[urls] => Array
(
)

)

)

[protected] =>
[followers_count] => 5
[friends_count] => 6
[listed_count] => 0
[created_at] => Wed Feb 19 23:31:15 +0000 2014
[favourites_count] => 1
[utc_offset] =>
[time_zone] =>
[geo_enabled] =>
[verified] =>
[statuses_count] => 3
[lang] => en
[contributors_enabled] =>
[is_translator] =>
[is_translation_enabled] =>
[profile_background_color] => C0DEED
[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] =>
[profile_image_url] => http://abs.twimg.com/sticky/default_profile_images/default_profile_5_normal.png
[profile_image_url_https] => https://abs.twimg.com/sticky/default_profile_images/default_profile_5_normal.png
[profile_banner_url] => https://pbs.twimg.com/profile_banners/2353482857/1392853158
[profile_link_color] => 0084B4
[profile_sidebar_border_color] => C0DEED
[profile_sidebar_fill_color] => DDEEF6
[profile_text_color] => 333333
[profile_use_background_image] => 1
[default_profile] => 1
[default_profile_image] => 1
[following] =>
[follow_request_sent] =>
[notifications] =>
)

[geo] =>
[coordinates] =>
[place] =>
[contributors] =>
[retweet_count] => 0
[favorite_count] => 0
[entities] => Array
(
[hashtags] => Array
(
)

[symbols] => Array
(
)

[urls] => Array
(
)

[user_mentions] => Array
(
[0] => Array
(
[screen_name] => Mogz1457
[name] => Morgan Williams
[id] => 347149526
[id_str] => 347149526
[indices] => Array
(
[0] => 0
[1] => 9
)

)

)

)

[favorited] =>
[retweeted] =>
[lang] => en
)

最佳答案

您的 json 具有多维结构。所以你必须循环处理它。不知怎的,像这样:

$json = json_decode($list, true);
if (is_array($json['statuses']))
foreach ($json['statuses'] as $item) {
$id = $item['id']; $text = $item['text']; $from = $item['user']['id'];
$db_insert = mysql_query("INSERT INTO tweets(from, tweet, tweetid) VALUES ('$from', '$text', '$id')");
}

关于php - 使用php将json形式的twitter响应解析到mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21996029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com