用 R 中的大整数解析 json
Parse json with big integer in R
我有json
"{\"old_value\":\"Active\",\"new_value\":\"Inactive\",\"campaign_id\":23845817785350401,\"type\":\"run_status\"}"
以 campaign_id = 23845817785350401
为整数。
当我试图解析它时,我遇到了一些问题:
"{\"old_value\":\"Active\",\"new_value\":\"Inactive\",\"campaign_id\":23845817785350401,\"type\":\"run_status\"}" %>% jsonlite::fromJSON()
$old_value
[1] "Active"
$new_value
[1] "Inactive"
$campaign_id
[1] 23845817785350400
$type
[1] "run_status"
campaign_id 解析错误。
如何像字符一样解析它或在 json 内添加引号 for campaign_id?
谢谢!
由于解析长数字会导致数据丢失,您可能可以在此处依赖正则表达式提取。
您可以使用
x <- "{\"old_value\":\"Active\",\"new_value\":\"Inactive\",\"campaign_id\":23845817785350401,\"type\":\"run_status\"}"
library(stringr)
stringr::str_extract(x, '(?<="campaign_id":)\d+')
# => [1] "23845817785350401"
也就是说,它提取紧跟在 "campaign_id":
子串之后的一位或多位数字(使用 \d+
)。
参见R demo online and a regex demo。
我有json
"{\"old_value\":\"Active\",\"new_value\":\"Inactive\",\"campaign_id\":23845817785350401,\"type\":\"run_status\"}"
以 campaign_id = 23845817785350401
为整数。
当我试图解析它时,我遇到了一些问题:
"{\"old_value\":\"Active\",\"new_value\":\"Inactive\",\"campaign_id\":23845817785350401,\"type\":\"run_status\"}" %>% jsonlite::fromJSON()
$old_value
[1] "Active"
$new_value
[1] "Inactive"
$campaign_id
[1] 23845817785350400
$type
[1] "run_status"
campaign_id 解析错误。
如何像字符一样解析它或在 json 内添加引号 for campaign_id?
谢谢!
由于解析长数字会导致数据丢失,您可能可以在此处依赖正则表达式提取。
您可以使用
x <- "{\"old_value\":\"Active\",\"new_value\":\"Inactive\",\"campaign_id\":23845817785350401,\"type\":\"run_status\"}"
library(stringr)
stringr::str_extract(x, '(?<="campaign_id":)\d+')
# => [1] "23845817785350401"
也就是说,它提取紧跟在 "campaign_id":
子串之后的一位或多位数字(使用 \d+
)。
参见R demo online and a regex demo。