We have a large Json file to come back into SF via Apex - the file contains every line whether it is edited or not which results in 1400 lines coming back for each update. Is there a way to ensure SF is only picking up the edited fields and not every single line? For example, you only edit the numbers of the street but you are still updating the street, city, state, country - but you only want the street updated.
If every JSON line is one Salesforce record and you don't expect the number of lines to increase much beyond the 1400 records than I would just deserialize the JSON into whatever object you need and update them. The 1400 records are well within the 10.000 DML rows you are allowed in one operation.
If you think you'll get close to the 10.000 DML rows, and a substantial part of the data hasn't actually been changed, then it may be worth the effort to first query the data you are going to update, and check if it needs updating. I don't believe there is a way to automatically have Salesforce check this, but depending on your requirements it wouldn't be too complicated to make.
Assuming you send the entire file in one piece to Salesforce than only the number of times you send the file will have an influence on your API call limit. (Do mind the 6 mb heap size limit, and the 6 mb call out limit for synchronous operations.)
The API call limits are pretty generous unless you intent to update these records a lot of times. You have at least 15000 calls per 24 hours + either 1000 or 5000 per Salesforce licence. (See: https://developer.salesforce.com/docs/atlas.en-us.salesforce_app_limits_cheatsheet.meta/salesforce_app_limits_cheatsheet/salesforce_app_limits_platform_api.htm)